簡體   English   中英

UICollectionView更新單個單元格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM