UICollectionView 在特定部分开始
Posted
技术标签:
【中文标题】UICollectionView 在特定部分开始【英文标题】:UICollectionView start in particular section 【发布时间】:2016-03-22 21:56:12 【问题描述】:我有一个 UIViewController,其中有一个 UICollectionView,它用于日历。我在今天的日期附近添加了一个缓冲区,并在未来 3 个月和一年后获得。当视图出现在第一个日期(3 个月前)时。有没有办法让 UICollectionView 出现在 ViewController 显示的后面部分(对我来说是第 3 部分)中?
我尝试在 ViewController 的 viewDidAppear 中使用没有动画的 scrollToItemAtIndexPath 并且它有效,但是您可以看到日历更改月份,如果我将它放在 viewWillAppear 中,它似乎没有任何影响。
我确实通过将它放在 viewDidLayoutSubviews 中来让它工作,但它似乎在 ViewController 出现时被调用了几次,这是正确的地方吗?
如果有帮助,我正在使用 Swift 和 Xcode 7.2。
【问题讨论】:
【参考方案1】:override func viewWillAppear(animated: Bool)
self.view.layoutIfNeeded()
self.scrollToItemAtIndexPath(indexPathToScrollTo)
【讨论】:
我试过 viewDidAppear() 但它会导致collectionView在视图完成出现后发生变化,而不仅仅是之前,所以你可以看到日历的变化。 抱歉,您可以在 viewWillAppear 中尝试一下吗?我犯了一个错误,我正在更新答案。以上是关于UICollectionView 在特定部分开始的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中特定部分的 UICollectionView 粘性标头
将 UICollectionView 部分中的所有项目替换为一项(组合单元格)
如何使用viewForSupplementaryElementOfKind - swift显示UICollectionView的特定单元格