2013-02-07 2 views
17

컬렉션보기가 표시되는 동안 UICollectionView를 다시로드하거나 새로 고치는 방법을 아는 사람이 있습니까? 기본적으로 나는 UITableview에 대한 표준 reloadData 메소드와 비슷한 것을 찾고있다.UICollectionview 새로 고침

[self.myCollectionView reloadSections:indexSet]; 
[self.myCollectionView reloadItemsAtIndexPaths:arrayOfIndexPaths]; 
+5

아마도 오해입니다.하지만 UICollectionView는 reloadData를 구현합니다. – danh

답변

45

당신은 단지 [self.myCollectionView reloadData]; 개별 섹션과 항목을 호출 할 수는 다시로드 할 수 있습니다 . 가장 좋은 방법은 충돌을 피하기 위해 먼저 모든 요소를 ​​제거하고 추가하는 것입니다.

+9

WFIW 저는 사람들이 [myTableView reloadData]를 호출하는 데 익숙하지만 UICollectionViews를 호출해야하기 때문에 [myCollectionView.collectionView reloadData]를 호출해야합니다. – capikaw

+0

[self.myCollectionView reloadData]; 한 번만 전화하십시오. 모든 데이터를 다시로드하려고합니다. –

9
[self.collectionView reloadData]; 
+0

이것은 실제로 원하는 결과를 얻지 만 reloadData를 사용하면 모든 셀이 다시 그려지고 성능에 영향을 줄 수 있습니다. – DrunkenBeard

+0

좋은 생각이 아닙니다. 전체 테이블을 다시로드하면 나쁜 성능과 에너지가 발생하기 때문입니다. – Karsten

0

정확하고 가장 좋은 방법은

NSMutableArray *indexPaths = [NSMutableArray array]; 
//prepare some data 
//batchupdate as block 
[self.collectionView performBatchUpdates:^{ 
    //operations like delete 
    [self.collectionView deleteSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, count)]]; 
    [self.collectionView insertItemsAtIndexPaths:indexPaths]; 
} completion:^(BOOL finished) { 
    // call something when ready 
    } 
}]; 

을 사용하는 것입니다 모두가 잘 애니메이션 미리 계산됩니다 :

+1

당신은 나의 하루를 구했습니다! 감사 –

관련 문제