微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Swift 中的特定索引处显示 collectionView

如何解决如何在 Swift 中的特定索引处显示 collectionView

我正在使用位于 github 上的名为 VegaScrollFlowLayout 的库。我试图在我的 collectionView 中给出一个确切的索引,并从该索引开始显示数据,但我不断重置为索引 0 而不是索引 10。

 override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)


    collectionView.scrollToItem(
        at: NSIndexPath(item: 10,section: 0) as IndexPath,at: [],animated: false)
  
    
 }

解决方法

您可能应该在 scrollToItem(at:at:animated:) 而不是 viewDidAppear() 中调用 viewWillAppear()。在 viewWillAppear() 中,集合视图尚未显示任何单元格。我认为你不需要那样拖延。

使用延迟是一种脆弱的做事方式。最好将代码移动到正确的生命周期方法。

,

好吧,经过一番挖掘,我不得不在代码中添加一个延迟。

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    DispatchQueue.main.asyncAfter(deadline: .now() + 0.1)
    {
        self.collectionView.scrollToItem(
        at: NSIndexPath(item: 15,section: 0) as IndexPath,at: [],animated: false)

    }
 }

这解决了问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。