强制更新屏幕外UICollectionView

ody*_*yth 2 objective-c uikit ios uicollectionview ios7

我有两个视图控制器A和B.ViewControllerA上有一个UICollectionView.

如果我将ViewControllerB推送到ViewControllerA,那么在后台ViewControllerA的UICollectionView更新中,我想强制集合视图重绘并使其单元格出列,这样当我从ViewControllerB返回时ViewControllerA的数据是最新的和正确的.调用reloadData不会使集合视图重新绘制它的自身,如果它在后台,它将等到viewWillAppear触发后 [UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes],这是调用数据源以使新单元格出列的方法.

无论如何强制或欺骗集合[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes]视图,以便在调用viewWillAppear之前调用新单元格?

我试图让自定义视图控制器转换工作,如果在查看ViewControllerB时ViewControllerA中的数据已更改,则看起来很奇怪.我想强制collectionView更新,所以当我调用CollectionView.visibileIndexPaths时,会返回正确的项目并且我的动画看起来是正确的.

ody*_*yth 5

在动画调用之前调用ViewControllerA视图上的layoutIfNeeded会强制在ViewControllerA返回屏幕之前更新collectionView.