【问题标题】:Subclass of UICollectionViewCell Not DisplayingUICollectionViewCell 的子类不显示
【发布时间】:2013-03-23 06:42:42
【问题描述】:

我有一个 UICollectionView,它通过单击导航控制器中的表格单元格来显示。所以 UICollectionView 是导航控制器堆栈中的第二个屏幕。

当我注册一个笔尖并通过 UICollectionViewCell 类创建单元格时,单元格在集合视图中显示良好。但是一旦我尝试为单元格创建一个子类,集合视图就会显示为黑屏。我的项目可以在这里找到。 Link to Project in Dropbox

为了继承 UICollectionViewCell,我做了以下操作:

  • 为 UICollectionViewCell 的子类创建了 .h 和 .m 文件。在 nib 的属性检查器上引用了这个自定义类。

  • 在显示集合视图的视图控制器的 viewDidLoad 中,使用单元格的重用标识符注册了自定义类。

    [self.collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"cvCell"];
    
  • 在“collectionView: cellForItemAtIndexPath:”中创建了自定义单元格的实例

    CustomCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cvCell" forIndexPath:indexPath];
    

根据我的阅读,应该可以!但是集合视图显示为空白,有人可以帮忙吗?

【问题讨论】:

    标签: cocoa-touch uicollectionview uicollectionviewcell


    【解决方案1】:

    我检查了你的代码。你做得很完美。带有单元格的集合视图显示正确,但您看不到这一点,因为您没有设置单元格的任何属性。只需通过在cellForItem 中设置单元格的背景颜色来检查

      cell.backgroundColor = [UIColor redColor];
    

    如果您在 nib 中完成了所有操作,那么您需要注册 nib 而不是类。使用registerNib 而不是registerClass。如果您要注册课程,则必须以编程方式完成所有操作。

    【讨论】:

    • 谢谢!尽管在继承 UICollectionViewCell 后,笔尖的内容似乎被完全忽略了,但我感到非常惊讶。我已经将背景设置为白色(在 Interface Builder 中)。我也只是在单元格中放置了一个图像(在 IB 中有一个 imageView)并且它没有显示出来。必须以编程方式添加子类 UICollectionViewCell 的所有内容吗?为什么它会忽略笔尖中的内容?
    • 如果您在 nib 中完成了所有操作,那么您需要注册 nib 而不是类。使用 registerNib 而不是 registerClass 来注册单元格。如果您要注册课程,则必须以编程方式进行所有操作...:)
    • 是的,就像你描述的那样工作。我注册了笔尖而不是班级,笔尖出现了。感谢您在这里提供帮助!
    • @AnilVarghese,请将此评论添加到您的答案中,因为它的投票率高于您的答案,并且对我也有帮助
    • @Mani 谢谢。我已将评论添加到我的答案中:)
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2012-09-26
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多