出队自定义 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 在滚动后显示错误的单元格 - 出队问题?

防止 UITableViewCells 出队并重新加载

动态/可出队的 UITableviewcells 内的 UITextfield

出队的 UITableViewCell 在滚动之前布局不正确(使用自动布局)