我有一個UIViewController它可以對didSelectItemAtIndexPath調用UICollectionView#reloadData在UICollectionViewDelegate#的CollectionView:didSelectItemAtIndexPath:隱藏所有細胞
@interface
id section1Item
NSMutableArray *section2Items
NSMutableArray *section3Items
@end
@implementation
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) {
;
} else if (indexPath.section == 1) {
self.section1Item = [self.section2Items objectAtIndex:indexPath.row];
} else { // indexPath.section == 2
id newSection2Item = [self.section3Items objectAtIndex:indexPath.row];
[self.section2Items addObject:newSection2Item];
[self.section3Items removeObject:newSection2Item];
}
[collectionView reloadData];
}
@end
的代碼背後的想法是,我的CollectionView具有的靜態數以下實施部分,並在第3部分的項目上粘貼將項目移動到部分2,並在第2部分的項目上點擊使其成爲第1部分中的項目。
但是,一旦我對dataStructure(section1Item,section2Items和section3Items),並調用reloadData,我所有的UICollect ionView單元消失。這個問題的一些症狀
- 在reloadData調用後,我的dataSource方法的非調用。我試着在我的numberOfSectionsInCollectionView和collectionView:numberOfItemsInSection的實現中放置一個斷點,但它們沒有被擊中。
- 我試着用RevealApp調試,我發現reloadData調用後,我所有的UICollectionViewCell的了隱藏屬性設置爲「是」,即使我沒有任何代碼在我的代碼庫調用.hidden = YES;
- 我也試着重寫UICollectionViewCell#setHidden來檢測一下(如果有的話)UIKit框架的一部分調用它,又沒有斷點觸發器。
工具細節:我正在iOS7模擬器上使用XCode5-DP6。
更新:我的UICollectionView在第一次渲染時顯示所有單元格。
我supect如果沒有被調用的所有數據源的方法意味着你的CollectionView本身是零莫名其妙。 – bhawesh
@BKC我更新了我的問題,但collectionView不是零,因爲我的初始渲染正確。 –
有一個解決方案張貼在另一個線程中爲我工作 - http://stackoverflow.com/a/14804429 –