ios - 强制更新离屏 UICollectionView

标签 ios objective-c ios7 uikit uicollectionview

我有两个 View Controller A 和 B。ViewControllerA 上有一个 UICollectionView。

如果我将 ViewControllerB 推到 ViewControllerA 上,那么在后台 ViewControllerA 的 UICollectionView 更新中,我想强制 Collection View 重绘并将其单元格出列,以便当我从 ViewControllerB 返回时,ViewControllerA 的数据是最新且正确的。如果 Collection View 在后台,调用 reloadData 不会使 Collection View 重绘它自己,它会等到 viewWillAppear 触发之后 [UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes],这是调用数据源以使新单元格出队的方法。

无论如何要强制或欺骗collectionview,以便它在调用viewWillAppear之前在新单元格上调用[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes]

我正在尝试让自定义 View Controller 转换正常工作,如果在查看 ViewControllerB 时 ViewControllerA 中的数据发生了变化,那么看起来很奇怪。我想强制 collectionView 更新,因此当我调用 CollectionView.visibileIndexPaths 时,会返回正确的项目,并且我的动画看起来会正确。

最佳答案

在再次对其进行动画处理之前,在 ViewControllerA 的 View 上调用 layoutIfNeeded 会强制 collectionView 在 ViewControllerA 返回屏幕之前进行更新。

关于ios - 强制更新离屏 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20564892/

相关文章:

ios - 为什么 watchOS2 上的 openSystemURL 打不开电话 : urls

ios - NSDateFormatter 中的无效日期

ios - iOS 中的 Sailsjs 套接字

javascript - iOS6/7 使用网络音频 API 停止声音进入后台

ios - Swift 协议(protocol)关联类型和继承约束

javascript - Appcelerator/Titanium - 从函数内调用变量

ios - cellForRowAtIndexPath 被调用两次

iOS 7 AVCaptureMetadataOutput 委托(delegate)(QRCode 扫描仪)

ios - Firebase iOS SDK : How to get multiple Data in one query

iphone - 在调用 respondsToSelector 之前检查委托(delegate)是否仍然存在