the*_*aju 6 objective-c ios uicollectionview
我有一个简单的UICollectionView.第一次加载视图时,将调用cellForItemAtIndexPath三次,我看到三个单元格.
- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {
NSUInteger count = ([self.results count] > 0 ? [self.results count] : 3);
NSLog(@"count %lu", (unsigned long)count);
return count;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"cellForItemAtIndexPath called");
UICollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"TasteCell" forIndexPath:indexPath];
cell.backgroundColor = [UIColor whiteColor];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
但是,后来的self.results变成了一个包含5个元素的数组,我称之为:
[self.collectionView reloadData];
Run Code Online (Sandbox Code Playgroud)
当发生这种情况时,再次调用numberOfItemsInSection并且其中的"count"日志语句显示它返回5.但是,这次,从不调用cellForItemAtIndexPath,并且UI仍显示第一次加载的三个单元格.
为什么即使计数已更改,单元格数量仍未更新?
小智 1
尝试再次为 UICollectionView 设置数据源和委托,然后再次重新加载。
-(void)reloadCollectionView {
mycollectionView.dataSource = self;
mycollectionview.delegate = self;
[mycollectionview reloadData];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3456 次 |
| 最近记录: |