【问题标题】:UICollectionView start in particular sectionUICollectionView 在特定部分开始
【发布时间】:2016-03-22 21:56:12
【问题描述】:

我有一个 UIViewController,其中有一个 UICollectionView,它用于日历。我在今天的日期附近添加了一个缓冲区,并在未来 3 个月和一年后获得。当视图出现在第一个日期(3 个月前)时。有没有办法让 UICollectionView 出现在 ViewController 显示的后面部分(对我来说是第 3 部分)中?

我尝试在 ViewController 的 viewDidAppear 中使用没有动画的 scrollToItemAtIndexPath 并且它有效,但是您可以看到日历更改月份,如果我将它放在 viewWillAppear 中,它似乎没有任何影响。

我确实通过将它放在 viewDidLayoutSubviews 中来让它工作,但它似乎在 ViewController 出现时被调用了几次,这是正确的地方吗?

如果有帮助,我正在使用 Swift 和 Xcode 7.2。

【问题讨论】:

    标签: ios swift uiviewcontroller uicollectionview


    【解决方案1】:
    override func viewWillAppear(animated: Bool) {
      self.view.layoutIfNeeded()
      self.scrollToItemAtIndexPath(indexPathToScrollTo)
    }
    

    【讨论】:

    • 我试过 viewDidAppear() 但它会导致collectionView在视图完成出现后发生变化,而不仅仅是之前,所以你可以看到日历的变化。
    • 抱歉,您可以在 viewWillAppear 中尝试一下吗?我犯了一个错误,我正在更新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多