在 UICollectionView 上工作时,我正在从 nib 加载一个单元格,如下所示
- (void)viewDidLoad
{
[super viewDidLoad];
/* Uncomment this block to use nib-based cells */
UINib *cellNib = [UINib nibWithNibName:@"NibCell" bundle:nil];
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"cvCell"];
// Configure layout
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
self.collectionView.contentInset = UIEdgeInsetsMake(10.0f, 0.0f, 10.0f, 0.0f);
[flowLayout setItemSize:CGSizeMake(300, 200)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
[self.collectionView setCollectionViewLayout:flowLayout];
}
我的笔尖文件如下所示
顶部标签用于显示单元格的数量,中间标签用于显示某个文本
在方法cellForItemAtIndexPath中,我只想将文本设置为特定行的单元格(在此示例中,我在第 1 行执行此操作):
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
// Setup cell identifier
static NSString *cellIdentifier = @"cvCell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
UILabel *titleLabel = (UILabel *)[cell viewWithTag:100];
UILabel *cellLablel = (UILabel *)[cell viewWithTag:200];
cellLablel.text = self.dataArray[0][indexPath.row];
if ( indexPath.row == 1)
[titleLabel setText:@"this is row 1"];
return cell;
}
运行应用程序时,出现问题。不仅row1单元格的titleLabel
设置为, row5 和 row9 和 row10 的 titleLabel 也设置为:
This is row 1
如果有人知道我在中间做错了什么。请帮忙。
我的收藏本节包含 1 节和 15 行。