我有一个UICollectionView
使用自定义UICollectionViewCell
类的。基本思想是集合视图将遍历目录并显示目录中包含的照片(通过 API 调用的结果)。初始视图控制器显示一个UICollectionView
,然后点击单元格会生成一个带有新UICollectionView
. 目录内容存储在NSMutableDictionary
以目录 ID 为键的 中。
当使用相当短的照片列表创建新视图/集合视图时会出现问题 - 通常少于 30。当我旋转设备时,集合视图尝试重新渲染,并且应用程序崩溃并显示“索引 X 超出bounds [0 .. Y]",其中 X 是一个大于 Y(数组的最后一个元素)的数字。
我注意到只有当新显示的集合视图的项目少于“根”集合视图时,才会发生这种情况。
以下是相关(其中一些,无论如何)代码的示例:
- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {
return [[photos objectForKey:api.directoryID] count];
}
- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
return 1;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
PhotoCell *photoCell = [cv dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
photoCell.photo = [[photos objectForKey:api.directoryID] objectAtIndex:indexPath.row];
return photoCell;
}
至少,我想对cellForItemAtIndexPath
. 也许在一个习惯UICollectionView
?
谢谢!