【问题标题】:UICollectionView scroll to specific sectionUICollectionView 滚动到特定部分
【发布时间】:2013-04-16 22:10:55
【问题描述】:

使用 Objective C 和 Xcode,我创建了一个包含 10 个部分的 UICollectionView,并且一切正常。无论如何设置第一次显示时查看的部分?默认情况下它显示第 0-9 节,但我希望它从第 5 节开始。

【问题讨论】:

    标签: ios objective-c uicollectionview


    【解决方案1】:

    您可以在您的viewDidAppear: 方法中调用scrollToItemAtIndexPath:atScrollPosition:animated:

    您可以保留对要滚动到的单元格的引用,然后使用indexPathForCell: 获取索引路径。

    以下是您可以选择的滚动位置

    UICollectionViewScrollPositionNone
    UICollectionViewScrollPositionTop
    UICollectionViewScrollPositionCenteredVertically
    UICollectionViewScrollPositionBottom
    UICollectionViewScrollPositionLeft
    UICollectionViewScrollPositionCenteredHorizontally
    UICollectionViewScrollPositionRight
    

    【讨论】:

    • 如果特定部分没有项目,只有标题视图怎么办?
    • 如果启用分页,我发现这不起作用。 scrollToItemAtIndexPath 始终将单元格定位在请求的位置,而您想要的是使页面居中(就像手动滚动一样)。如果您没有位于页面中心的单元格,这似乎是不可能的。
    【解决方案2】:

    如果您根据整数行和部分知道要滚动到的位置,则可以在

    中使用这些整数
    NSIndexPath indexPathForItem:inSection:
    

    创建 NSIndexPath 的方法,而不是保留对单元格的引用,然后调用 indexPathForCell:。此外,如果您希望在显示视图之前发生滚动,可以将此代码移至 viewWillAppear: 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      相关资源
      最近更新 更多