【问题标题】:dequeue custom UICollectionViewCell but properties in cell are nil出队自定义 UICollectionViewCell 但单元格中的属性为零
【发布时间】: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 中创建该单元格。注释掉你注册课程的那一行,然后你应该没问题,或者如果没有,那么你有一个新问题,它将在其他地方。

标签: ios objective-c uitableview


【解决方案1】:

我假设您在故事板/xib 中设计了一个“NewsCollectionCellFull”,并且它包含一个 UIImageView。如果是这样,请确保: 1) mainimage 属性在代码中声明为 IBOutlet 2) 故事板/xib 中的 UIImageView 连接到该 IBOutlet

【讨论】:

  • 是的,我已经做到了。但结果我通过在 initWithFrame 方法中为 UITableViewCell 加载 nib 文件解决了这个问题。无论如何,谢谢你的帮助。欣赏它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多