ios - UICollectionView:有没有办法只重新加载补充 View ?

标签 ios objective-c uicollectionview

我有一个 uicollectionview,每个部分都有 supplementaryView。 在每个 supplementaryView 中,我都有一些按钮。 在数据源方法 collectionView:viewForSupplementaryElementOfKind:atIndexPath: 中,我使用 indexPath.section 设置按钮标签。当按下按钮并将部分(button.tag)作为参数发送时,我制作了一些委托(delegate)方法。

一切正常,但问题来了:

  • 当我插入或删除一个部分时,它必须更新按钮标签,但我不想重新加载每个部分的所有项目。

我试过:

  • 使用数据源方法 collectionView:viewForSupplementaryElementOfKind:atIndexPath: 获取 supplementaryViews 并为每个 supplementaryView 调用 layoutIfNeeded 方法,这样supplementaryViews 正在重新加载,但这种方法会增加我的 supplementaryViews
  • collectionView.subviews 中快速 for 并仅获取 supplementaryView 并调用 layoutIfNeeded 方法,但它不会重新加载,只是布局正在重新加载。
  • reloadSections: 方法,但这会重新加载部分中的所有项目

哦..我使用 NSFetchedResultsController(委托(delegate))来插入和删除部分。

谁能帮我解决这个问题?有没有办法只重新加载 supplementaryView?这种情况还有其他方法吗?

谢谢!

最佳答案

要重新加载补充 View ,您可以使用 -invalidateLayoutWithContext:

请参阅有关 UICollectionViewLayoutInvalidationContext 和方法 -invalidateSupplementaryElementsOfKind:atIndexPaths: 的文档(自 iOS 8 起可用)。

关于ios - UICollectionView:有没有办法只重新加载补充 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26998761/

相关文章:

iphone - 如何从互联网广播资源录制音频流?

ios - UIButton 外观也设置键盘按钮

ios - UITextView 未在键盘中显示地球图标

ios - Collection View 单元格多项选择错误

ios - 如何在不创建类实例的情况下为类设置值?

ios - swift ios 无法从堆栈中删除旧模型 viewcontroller

ios - 是否可以观察来自不同类的 NSMutableArray?

ios - 架构 arm64 的 undefined symbol : "_OBJC_CLASS_$_PayTabCardReaderViewController", 从 : objc-class-ref in ViewController. o 引用

ios - 在 UIView 中注册自定义 Collection View 单元

ios - 如何从单元格中的按钮调用外部函数