2013-12-13 56 views
2

我有兩個視圖控制器A和B. ViewControllerA上有一個UICollectionView。強制更新離屏UICollectionView

如果我將ViewControllerB推送到ViewControllerA,然後在後臺ViewControllerA的UICollectionView更新中,我想強制集合視圖重繪和取消它的單元格,以便當我從ViewControllerB返回時ViewControllerA的數據是最新且正確的。調用reloadData並不會使集合視圖重新繪製它自己,如果它在後臺,它將等待,直到在viewWillAppear之後觸發 [UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes],這是調用數據源以使新單元出列的方法。

無論如何強制或欺騙collectionview,以便它在調用viewWillAppear之前在新單元上調用[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes]

我想獲得一個自定義的視圖控制器轉換工作,它看起來很奇怪,如果在查看ViewControllerB時數據已在ViewControllerA中更改。我想強制collectionView更新,所以當我調用CollectionView.visibileIndexPaths時,返回正確的項目,我的動畫看起來是正確的。

+0

您可以使用委託來更新其他控制器的視圖。嘗試一下。 –

回答

5

在ViewControllerA的視圖上再次調用layoutIfNeeded之前,強制collectionView在ViewControllerA返回屏幕之前進行更新。