UITableViewCell和UICollectionViewCell创建的三种方式及应用选择

UITabelView和UICollectionView是学习IOS基础知识时入门的两个类,它们都继承至UIScrollView,都可以用来处理出现重复单元的问题,因此将两者放在一块对比学习,能更深刻地理解这两个类。
1 UITabelViewCell创建的三种方式:
(1)自定义      [UITableViewCell alloc] initWithStyle:(UITableViewCellStyle) reuseIdentifier:(nullable NSString *)]在自定义Cell的.m文件中重写父类的这个方法,能够在该方法中添加控件的定义。通过Cell类的延展可以定义只能在该类中使用的私有控件,然后通过重写.h文件中属性的set方法实现自定义控件的内容和frame赋值;
(2)xib      选择UITableViewCell的xib控件创建xib单元,让后定义xib文件的管理类。为了能让UITabelView识别到xib,需要对xib的Identifier进行设置。可以将UITableView在缓存区寻找的代码放到xib管理类的构造方法中,完成对UITableViewCell定义的封装。
   (3)   storyboard     UITabelView按照重用标识在缓存区寻找需要的Cell时,如果寻找不到,会自动在storyboard当中寻找,因此不需要再storyboard中的cell的管理类自定义构造方法。 
2 UICollectionViewCell创建的三种方式:
(1)自定义       - (instancetype)initWithFrame:(CGRect)frame重写父类(UIView)中的构造方法,在其中添加自定义控件。因为使用UICollectionVeiw的缓存区,需要对其Cell类先进行注册,当找到标识时,CollectionView会自动调用Cell类的默认构造方法;
(2)xib     定义xib后,可以直接通过UICollectionView的 - (void)registerNib:(nullable UINib *)nib forCellWithReuseIdentifier:(NSString *)identifier方法自己注册xib,所以不必在xib的管理类中定义构造方法。但是若使用 UICollectionView的 - (void)registerClass:(nullable Class)cellClass forCellWithReuseIdentifier:(NSString *)identifier方法注册时,需要重写xib管理类的父类的 - (instancetype)initWithFrame:(CGRect)frame构造方法;
   (3)   storyboard     和UITableView类似,UICollectionView在缓存区找不到Cell时,会自动去storyboard中寻找,因此只需要对storyboard中的CollectionCell定义Identifier。
通过自定义代码创建的UITableView和UICollectionView可以根据实际情况灵活设置大小。而通过xib和storyboard创建的cell,布局和控件根据实际情况调整的空间不大。因此当单元内容区别较大时,选用自定义代码较好,反之,可以采用xib和storyboard技术。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值