如何解决如何在 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 举报,一经查实,本站将立刻删除。