gpt4 book ai didi

ios6 - 重新加载 UICollectionView 页眉或页脚?

转载 作者:行者123 更新时间:2023-12-03 08:26:59 24 4
gpt4 key购买 nike

我有一些数据是在更新 UICollectionView header 的另一个线程中获取的。但是,我还没有找到重新加载补充 View (例如页眉或页脚)的有效方法。

我可以打电话collectionView reloadSections: ,但这会重新加载整个部分,这是不必要的。 collectionView reloadItemsAtIndexPaths:似乎只针对单元格(不是补充 View )。并调用 setNeedsDisplay标题本身似乎也不起作用。我错过了什么吗?

最佳答案

你也可以使用(懒惰的方式)

collectionView.collectionViewLayout.invalidateLayout() // swift

[[_collectionView collectionViewLayout] invalidateLayout] // objc

更复杂的是提供上下文
collectionView.collectionViewLayout.invalidateLayout(with: context) // swift

[[_collectionView collectionViewLayout] invalidateLayoutWithContext:context] // objc

然后,您可以自己创建或配置上下文以通知应更新的内容,请参阅: UICollectionViewLayoutInvalidationContext

它有一个功能,您可以覆盖:
invalidateSupplementaryElements(ofKind:at:) // swift

另一种选择是(如果您已经加载了正确的页眉/页脚/补充 View )并且您只想使用新数据更新 View ,而您可以使用以下函数之一来检索它:
supplementaryView(forElementKind:at:) // get specific one visibleSupplementaryViews(ofKind:) // all visible ones
使用 visibleCells 的可见单元格也是如此.仅获取 View 而不完全重新加载 View 的优点是单元格保持其状态。当表格 View 单元格使用滑动来删除/编辑/等时,这对于表格 View 单元格来说特别好,因为在重新加载单元格后该状态会丢失。

如果您感到狂热,您当然也可以编写一些扩展来使用泛型仅检索给定类型的单元格/补充 View
if let view = supplementaryView(forType: MySupplementaryView.self, at: indexPath) {
configure(view, at indexPath)
}

这假设您有一个函数,可以在示例中使用它们的类名注册/出列 View 。我发了一篇关于这个的帖子 here

关于ios6 - 重新加载 UICollectionView 页眉或页脚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com