programing

UICollectionView 단일 셀 업데이트

itsource 2021. 1. 18. 07:58
반응형

UICollectionView 단일 셀 업데이트


나는 내 하나의 셀을 업데이트하려고 시도하고 UICollectionView특히 난 그냥 의해 폭발 특정 셀의 이미지를 업데이트하는 것을 시도하고있다, cell.imageView. [self.collectionView reloadData]전체 컬렉션 뷰를 플래시로 만들기 때문에 실제로 옵션이 아닙니다. 그것은 보이는 [self.collectionView beginUpdates]일이 아닙니다 UICollectionView.

다음을 사용할 수 있음을 이해합니다.

[self.collectionView performBatchUpdates:^{
    //do something
} completion:nil];

특정 셀을 업데이트하기 위해 완료 블록 안에 무엇을 넣어야할지 정확히 모르겠습니다 imageView. 이것은 모두 내부에서 수행되고 있습니다. didSelectItemAtIndexPath또한 사용하지 않습니다 NSFetchedResultsController. 어떤 아이디어?


- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths

여기에 특정 항목을 다시로드하는 방법이 indexPaths있습니다.collectionView


Dinesh의 대답은 정확합니다. 그러나 다시로드 할 때 원하지 않는 애니메이션 ( "깜박임"이라고도 함)을 방지하려면 다음을 사용하십시오.

BOOL animationsEnabled = [UIView areAnimationsEnabled];
[UIView setAnimationsEnabled:NO];
[myCollectionView reloadItemsAtIndexPaths:myIndexPaths];
[UIView setAnimationsEnabled:animationsEnabled];

"iOS 용 컬렉션보기 프로그래밍 가이드"에서 섹션 및 항목 삽입, 삭제 및 이동을 참조하십시오 .

단일 섹션 또는 항목을 삽입, 삭제 또는 이동하려면 다음 단계를 수행해야합니다.


데이터 소스 개체의 데이터를 업데이트합니다. 컬렉션보기의 적절한 메서드를 호출하여 섹션 또는 항목을 삽입하거나 삭제합니다. 콜렉션보기에 변경 사항을 알리기 전에 데이터 소스를 업데이트하는 것이 중요합니다. 콜렉션 뷰 메소드는 데이터 소스에 현재 올바른 데이터가 포함되어 있다고 가정합니다. 그렇지 않은 경우 컬렉션 뷰가 데이터 원본에서 잘못된 항목 집합을 받거나 거기에없는 항목을 요청하여 앱이 중단 될 수 있습니다.


따라서 귀하의 경우에는 먼저 컬렉션 ​​뷰 데이터 소스에 이미지를 추가 한 다음 insertItemsAtIndexPaths를 호출해야합니다. 컬렉션 뷰는 삽입 된 항목에 대한 뷰를 제공하기 위해 데이터 소스 위임 기능에 요청합니다.

참조 URL : https://stackoverflow.com/questions/20296929/uicollectionview-update-a-single-cell

반응형