UICollectionView 滚动到特定部分
Posted
技术标签:
【中文标题】UICollectionView 滚动到特定部分【英文标题】:UICollectionView scroll to specific section 【发布时间】:2013-04-16 22:10:55 【问题描述】:使用 Objective C 和 Xcode,我创建了一个包含 10 个部分的 UICollectionView
,并且一切正常。无论如何设置第一次显示时查看的部分?默认情况下它显示第 0-9 节,但我希望它从第 5 节开始。
【问题讨论】:
【参考方案1】:您可以在您的viewDidAppear:
方法中调用scrollToItemAtIndexPath:atScrollPosition:animated:
。
您可以保留对要滚动到的单元格的引用,然后使用indexPathForCell:
获取索引路径。
以下是您可以选择的滚动位置
UICollectionViewScrollPositionNone
UICollectionViewScrollPositionTop
UICollectionViewScrollPositionCenteredVertically
UICollectionViewScrollPositionBottom
UICollectionViewScrollPositionLeft
UICollectionViewScrollPositionCenteredHorizontally
UICollectionViewScrollPositionRight
【讨论】:
如果特定部分没有项目,只有标题视图怎么办? 如果启用分页,我发现这不起作用。 scrollToItemAtIndexPath 始终将单元格定位在请求的位置,而您想要的是使页面居中(就像手动滚动一样)。如果您没有位于页面中心的单元格,这似乎是不可能的。【参考方案2】:如果您根据整数行和部分知道要滚动到的位置,则可以在
中使用这些整数NSIndexPath indexPathForItem:inSection:
创建 NSIndexPath 的方法,而不是保留对单元格的引用,然后调用 indexPathForCell:。此外,如果您希望在显示视图之前发生滚动,可以将此代码移至 viewWillAppear: 方法。
【讨论】:
以上是关于UICollectionView 滚动到特定部分的主要内容,如果未能解决你的问题,请参考以下文章