iOS-自定义UICollectionViewCell注册问题

今天项目上用到了UICollectionView,展示效果并不难,就是自定义一个UICollectionViewCell的子类,在这个UICollectionViewCell的就添加了几个图片imageview。imageview是用拖线到.h文件中的

但是一切代理方法写好,cell创建没有问题,cell设置背景颜色也能正常展示。但是imageview一直不能展示。

后来查阅资料,翻了几遍代码,才找到问题出现在自定义cell注册的问题上。

- (void)registerClass:(nullable Class)cellClass forCellWithReuseIdentifier:(NSString *)identifier;

- (void)registerNib:(nullable UINib *)nib forCellWithReuseIdentifier:(NSString *)identifier;

注册自定义cell使用上面两种方法,而我出现imageview无法显示的原因就,我是使用xib创建的自定义cell类,但是我注册却是使用registerClass去注册的。

查资料得知,xib文件的加载是需要mainBundle去加载才能真实加载成功,而registerClass注册的cell是不会用mainBundle遍历加载相应的xib的,所以拖线出来的imageview无法显示!

总结

1,如果自定义的cell是用纯代码实现的,使用registerClass来注册cell;

2,如果自定义的cell中有用xib加载一些控件,要用registerNib来注册;

3,同时如果你的自定义cell是在storyboard中创建,这个cell是不需要注册的。

细节啊,之前没有仔细考虑这一块的东西。个人总结,谢谢!

你可能感兴趣的:(iOS-自定义UICollectionViewCell注册问题)