我有一个UIViewController,它为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,我的UICollectionView单元就会消失。这个问题的几个症状
工具详细信息:我正在iOS7模拟器上使用XCode5-DP6。
更新: My UICollectionView在第一次呈现时正确显示所有单元格。
发布于 2013-09-25 23:19:26
好吧,偷窥,所以我能解决这个问题。委托(self)是UIViewController的一个子类。在init中,我分配了self.view = viewFromStoryBoard,其中调用方传入了viewFromStoryBoard,并在故事板中设置了该调用程序。
由于我并没有真正使用子类UIViewController提供的任何工具,所以我决定切换到子类NSObject并手动保留指向UICollectionView的指针。
这解决了我的问题。然而,我对这个问题的确切性质不是百分之百的。我猜想,在某种程度上,覆盖UIViewController的视图并不是它看起来的全部。
发布于 2013-10-01 16:11:34
iOS 7和UICollectionView有很多错误.在我的例子中,reloadData不能正常工作,它可以延迟工作。
https://stackoverflow.com/questions/18990878
复制相似问题