[英]UICollectionView update a single cell
我正在嘗試更新UICollectionView
的單個單元格,特別是我只是嘗試更新由cell.imageView
引爆的特定單元格中的圖像。 [self.collectionView reloadData]
實際上不是一個選項,因為它使整個集合視圖閃爍。 [self.collectionView beginUpdates]
是不是在事UICollectionView
看來。
我知道我可以使用:
[self.collectionView performBatchUpdates:^{
//do something
} completion:nil];
我不確定在完成塊中放置什么來更新某個單元格的imageView
。 這都是在didSelectItemAtIndexPath
中完成的。我也沒有使用NSFetchedResultsController
。 有任何想法嗎?
- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths
這是一個在collectionView
重新加載特定indexPaths
的方法
Dinesh的回答是現實的。 但是為了避免在重新加載(也稱為“閃爍”)時出現不需要的動畫,請使用:
BOOL animationsEnabled = [UIView areAnimationsEnabled];
[UIView setAnimationsEnabled:NO];
[myCollectionView reloadItemsAtIndexPaths:myIndexPaths];
[UIView setAnimationsEnabled:animationsEnabled];
請參閱“適用於iOS的集合視圖編程指南”中的插入,刪除和移動節和項目 :
要插入,刪除或移動單個部分或項目,您必須執行以下步驟:
更新數據源對象中的數據。 調用集合視圖的相應方法以插入或刪除節或項。 在通知集合視圖任何更改之前更新數據源至關重要。 集合視圖方法假定您的數據源包含當前正確的數據。 如果沒有,集合視圖可能會從您的數據源收到錯誤的項目集,或者詢問不存在的項目並使您的應用程序崩潰。
因此,在您的情況下,您必須首先將圖像添加到集合視圖數據源,然后調用insertItemsAtIndexPaths。 然后,集合視圖將要求數據源委托函數提供插入項的視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.