我有一个更新现有UICollectionView的函数。
UICollectionView已被创建,我可以看到它,但是当我想要访问其单元格以进行更新时,它们为空。
我有一个更新现有UICollectionView的函数。 UICollectionView已被创建,我可以看到它,但是当我想要访问其单元格以进行更新时,它们为空。
-(void)finishExam{
for (int i = 0; i < [self.questionsOverviewCollection numberOfItemsInSection:0]; i++) {
NSLog(@"self.questionsOverviewCollection - %@",self.questionsOverviewCollection);
NSLog(@"cell - %@",[self.questionsOverviewCollection cellForItemAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]);
NSLog(@"overviewCell - %@",(OverviewCell*)[self.questionsOverviewCollection cellForItemAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]);
NSLog(@"numOfCells - %d", [self.questionsOverviewCollection numberOfItemsInSection:0]);
OverviewCell *cell = (OverviewCell*)[self.questionsOverviewCollection cellForItemAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
[cell finishExam];
}
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
OverviewCell *cell = (OverviewCell*)[collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
[cell someSetUp];
return cell;
}
日志:
self.questionsOverviewCollection - <UICollectionView: 0xa1abc00; frame = (14 219; 217 441); clipsToBounds = YES; opaque = NO; autoresize = W+H; gestureRecognizers = <NSArray: 0xe0617a0>; layer = <CALayer: 0xe0bbb00>; contentOffset: {0, 0}> collection view layout: <UICollectionViewFlowLayout: 0xe0cc3f0>
cell - (null)
overviewCell - (null)
numOfCells - 30
[cell finishExam]
,而不是通过collectionView
代理。请参阅我对 Paul S. 答案的评论。在大多数情况下,您应该能够从collectionViewLayout
属性中获取单元格布局信息,并且像-finishExam
这样的模型特定功能应该在您的模型上可用,或者在单元格出列时进行配置。 - nteissler