【发布时间】: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