我在我的视图上创建了一个Collection View,现在我正在尝试在单元格上插入一个图像:
但是,屏幕保持黑色。
我看到代码:UIImageView *imageView = (UIImageView *)[cell viewWithTag:100];
正在返回nil。有什么问题?
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath; {
static NSString *identifier = @"Cell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
UIImageView *imageView = (UIImageView *)[cell viewWithTag:100];
imageView.image = [UIImage imageNamed:@"ic_see_on_map.png"];
return cell;
}
答案 0 :(得分:1)
您在单元格XIB中将UICollectionViewCell
和UIImageView
'标记设置为100。然后UIImageView *imageView = (UIImageView *)[cell viewWithTag:100];
将返回UICollectionViewCell
。然后将UICollectionViewCell
对象强制转换为UIImageView
对象。那就是问题所在。您需要将UICollectionViewCell
的标记重置为0或不是100。然后,您可以获得标记为100的UIImageView
。
答案 1 :(得分:1)
为什么不使用cellForItemAtIndexPath提取单元格,然后遍历其层次结构以进行imageview。不建议使用标记,因为多个单元格的图像视图将获得相同的标记值,这使得viewWithTag无效。其次你说屏幕保持黑色,你能看到任何集合视图的细胞吗?因为它意味着你的集合视图本身没有被实例化。要重置标记,请转到nib并将tag属性设置为0。