- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是 iOS 和 Swift 的新手。
已设法创建一个带有自定义 LayoutAttributes 和可重用自定义单元格的 UICollectionView,该单元格计算图像的高度。这一切都很棒。工作正常,我可以手动滚动。一切都好。
问题是我想以编程方式滚动到第 N 个 indexPath,但 scrollToItemAtIndexPath 似乎只适用于可见的。
所以我必须在 iphone 5S 上显示 9 张图像的 2 列图像。图片总数为31张。
因此,使用 collectionView 的 ScrollToItemAtIndexPath 可以工作到第 9 个项目。
但是,当我尝试以编程方式进一步滚动时,比如 12th,它不起作用。奇怪的是,如果手动滚动,然后调用代码,它就可以工作。所以我调试了一下,发现只有前 9 个单元格是用高度计算的。那会是问题吗?如果是这样,我怎样才能让它发挥作用?
已尝试使用 didLayoutSubviews 和其他建议,但没有奏效。
目前,我正在使用 didSelectItemAtIndexPath collectionView 函数以编程方式滚动。
编辑:
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let item = self.collectionView(self.collectionView!, numberOfItemsInSection: 0) - 1
let lastItemIndex = NSIndexPath(forItem: item, inSection: 0)
self.collectionView?.scrollToItemAtIndexPath(lastItemIndex, atScrollPosition: UICollectionViewScrollPosition.CenteredVertically, animated: true)
}
即使我对索引路径的编号进行硬编码(例如 12),它仍然无法工作。如果需要更多信息,请告诉我。
我是不是漏掉了什么?
非常感谢。
最佳答案
您应该在 viewDidAppear 中调用方法 scrollToItemAtIndexPath,这样,cellForItemAtIndexPath 就已经被调用了。
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
collectionView.scrollToItemAtIndexPath(NSIndexPath(forRow: index, inSection: 0), atScrollPosition: .CenteredVertically, animated: false)
}
关于ios - UIcollectionView scrollToitemAtIndexPath 不适用于不可见的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37883813/
当用户滚动到顶部(查看聊天记录)时,我正在尝试在顶部添加新的信息部分,而不会像 Telegram、Whatsup 等那样进行任何跳转 这是我的方法 private var toItem: NSInde
我正在尝试通过代码将我的 UICollectionView 滚动到顶部。我正在调用这个方法: [self.collectionView scrollToItemAtIndexPath:
在我的集合中,一个 UICollectionView 实例,有 25 个单元格。第一个单元格位于 indexPath (0,0),最后一个单元格位于 indexPath (0,24)。 无论我从第一个
我正在尝试使用 UICollectionView 实现照片库。该设置类似于此 tutorial 中的设置:单元格与 Collection View 一样大,因此您一次只能看到一张图片。启用分页,因此您
我正在尝试滚动到 Collection View 中的特定项目,并且它似乎在大约 90% 的时间内正确发生。我基本上有一个 Collection View ,我通过自动布局更改其框架,然后我希望我的单
我创建了一个 CollectionView控制并用图像填充它。现在我想在开始时滚动到特定索引处的项目。我试过scrollToItemAtIndexPath如下: [self.myFullScreenC
我正在尝试自动移动我的 UICollectionView 中的单元格.移动它的代码: - (void)scroll { row += 2; [UIView animateWithDur
我创建了一个新项目,它只包含一个 UICollectionView 和一个 UIButton。 collectionView 包含 30 个单元格,全部位于第 0 部分。并且并非所有单元格都可以同时可
当我调用 scrollToItemAtIndexPath 方法滚动到底部并打开键盘时, collectionView.scrollToItemAtIndexPath(indexPath, atScro
我需要一个 collectionView 来滚动到没有动画的选定索引。在方法中我使用动画作为 NO。将 NO 传递给它后,它正在拍摄动画。如果有人对此有任何想法,请帮助我。 [self.firstCo
我想通过调用“scrollToItemAtIndexPath”方法在 UICollectionView 中完成动画后做一些事情,但我不知道需要多长时间。有文档提到过吗? PS.我知道“延迟做某事(可能
[myCollectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0] atScrollPositi
我希望能够滚动到标题而不是该标题下的第一项。这很重要的原因是 atScrollPosition 参数设置为 Top,我滚动到特定部分中的第零项。然后,这会隐藏标题,并且用户不会收到确认他们已滚动到正确
我是 iOS 和 Swift 的新手。 已设法创建一个带有自定义 LayoutAttributes 和可重用自定义单元格的 UICollectionView,该单元格计算图像的高度。这一切都很棒。工作
所以我在我的 viewDidLoad 函数中放置了以下代码,它使应用程序崩溃。任何想法为什么会发生这种情况或解决此问题的方法? self.collectionView?.scrollToItem(at
我有一个包含 142 个单元格的 UICollectionView。 7.5 随时可见。 我正在将一个单元格从 indexPath 0 移动到 100。但我也想滚动到那个新位置。 下面的代码工作正常。
我有一个 UIView,我在其中添加了一个 UICollectionView。现在此 View 显示在应用程序启动时。同时,我滚动到我的收藏 View 中的某个位置。因此我使用 scrollToIte
我有一组图像显示在类似于 Instagram 个人资料页面的 collectionView 中。选择图像时,indexPath.row 会传递到下一个 collectionView,我在其中使用相同的
我有 UICollectionView 供用户从网格中选择图像。一旦选择了一个单元格, View Controller 就会被释放,包括 UICollectionView。 我想记住用户上次使用 UI
我们有一个充满整个屏幕的 UICollectionView 来模拟全屏照片幻灯片。 Collection View 的数据由 NSFetchedResultsController 支持。在任何给定时间
我是一名优秀的程序员,十分优秀!