出队自定义 UICollectionViewCell 但单元格中的属性为零
Posted
技术标签:
【中文标题】出队自定义 UICollectionViewCell 但单元格中的属性为零【英文标题】:dequeue custom UICollectionViewCell but properties in cell are nil 【发布时间】:2013-12-29 14:40:59 【问题描述】:我使用我的自定义 UICollectionViewCell 并在 cellForItemAtIndexPath 中使用以下代码
static NSString *newsCollectionCellFullIdentifier = @"NewsCollectionCellFull";
NewsCollectionCellFull *cell = [collectionView dequeueReusableCellWithReuseIdentifier:newsCollectionCellFullIdentifier forIndexPath:indexPath];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:newsCollectionCellFullIdentifier owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.mainimage.image = [UIImage imageNamed:@"rss.png"];
return cell;
但是在这行代码执行之后
NewsCollectionCellFull *cell = [collectionView dequeueReusableCellWithReuseIdentifier:newsCollectionCellFullIdentifier forIndexPath:indexPath];
"mainimage" 属性(我的 .xib 文件中的 UIImageView)为 nil,我无能为力。而且我的集合视图在它的单元格中没有显示任何内容(但这些单元格是可选择的并且可以正确调用 didSelectCellAtIndexPath)
我做错了吗?我使用这种方式从我的另一个自定义单元格中取出单元格,它可以正常工作,但不适用于这个。
提前致谢。
编辑:我从调试会话中添加了一张图片。出队后...执行代码行
http://i.stack.imgur.com/NfvTP.png
你看到 imageView 是 nil。
AND dequeue.... 方法即使对于第一个单元格也返回可重用单元格。
【问题讨论】:
您是否在ViewDidLoad
中注册了自定义单元格类? `
是的,我已经做到了。
我在调试会话中添加了一张图片。
注册自定义单元类实际上会导致它中断。通过注册该类,您将覆盖 Interface Builder 的原型单元格,而是以编程方式而不是从您的 Storyboard 中创建该单元格。注释掉你注册课程的那一行,然后你应该没问题,或者如果没有,那么你有一个新问题,它将在其他地方。
【参考方案1】:
我假设您在故事板/xib 中设计了一个“NewsCollectionCellFull”,并且它包含一个 UIImageView。如果是这样,请确保: 1) mainimage 属性在代码中声明为 IBOutlet 2) 故事板/xib 中的 UIImageView 连接到该 IBOutlet
【讨论】:
是的,我已经做到了。但结果我通过在 initWithFrame 方法中为 UITableViewCell 加载 nib 文件解决了这个问题。无论如何,谢谢你的帮助。欣赏它。以上是关于出队自定义 UICollectionViewCell 但单元格中的属性为零的主要内容,如果未能解决你的问题,请参考以下文章
执行 setCollectionViewLayout 时 UICollectionViewCel 中的布局看起来很奇怪
出队后,CALayer 在自定义 UITableViewCell NIB 上消失
UICollectionView 在滚动后显示错误的单元格 - 出队问题?