Tableviewcell的registerNib与registerClass的差异
来源:互联网 发布:淘宝什么推广效果好 编辑:程序博客网 时间:2024/06/07 05:54
一.registerNib这种方式
1.首先xib中指定cell的Class为自定义cell类型(注意不是设置File's Owner的class)
2.调用 tableView 的 registerNib:forCellReuseIdentifier:方法向数据源注册cell
3.在cellForRowAtIndexPath中使用dequeueReuseableCellWithIdentifier:forIndexPath:获取重用的cell,若无重用的cell,将自动使用所提供的nib文件创建cell并返回
4、获取cell时若无可重用cell,将创建新的cell并调用其中的awakeFromNib方法,可通过重写这个方法添加更多页面内容
二:不使用xib(纯代码)
1.重写自定义cell的initWithStyle:withReuseableCellIdentifier:方法进行布局(不需要注册)
三.不使用xib, registerClass这种方式 (纯代码)
1.为tableView注册cell,使用registerClass:forCellReuseIdentifier:方法注册(注意是Class)
ps:
1.dequeueReuseableCellWithIdentifier:与dequeueReuseableCellWithIdentifier:forIndexPath:的区别:
前者不必向tableView注册cell的Identifier,但需要判断获取的cell是否为nil;
后者则必须向table注册cell,可省略判断获取的cell是否为空,因为无可复用cell时runtime将使用注册时提供的资源去新建一个cell并返回
2、自定义cell时,记得将其他内容加到self.contentView 上,而不是直接添加到 cell 本身上
总结:
1.自定义cell时,
若使用nib,使用 registerNib: 注册,dequeue时会调用 cell 的 -(void)awakeFromNib
不使用nib,使用 registerClass: 注册, dequeue时会调用 cell 的 - (id)initWithStyle:withReuseableCellIdentifier:
2.需不需要注册?
使用dequeueReuseableCellWithIdentifier:可不注册,但是必须对获取回来的cell进行判断是否为空,若空则手动创建新的cell;
使用dequeueReuseableCellWithIdentifier:forIndexPath:必须注册,但返回的cell可省略空值判断的步骤。
阅读全文
0 0
- Tableviewcell的registerNib与registerClass的差异
- IOS开发 自定义TableViewCell(registerNib:与registerClass:的差异)
- tableViewCell详说registerNib: 与 registerClass: 的区别
- 自定义UITableViewCell(registerNib: 与 registerClass: 的差异)
- registerNib: 与 registerClass: 的区别
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的使用)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- iOS自定义UITableViewCell registerNib: 与 registerClass: 的区别
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- 大话Linux内核中锁机制之内存屏障、读写自旋锁及顺序锁
- RecycleVIew添加和删除,以及三种展现方式
- centos 7 安装latest python 2.7.14
- 为什么说jsp是servlet?JSP是如何转换成servlet的?
- org.hibernate.MappingException: Unknown entity:的解决办法
- Tableviewcell的registerNib与registerClass的差异
- iOS 11适配之跳转App Store评论
- Linux下SGX的使用(3)-编译多个文件
- 洛谷 1894 [USACO4.2]完美的牛栏The Perfect Stall
- java中关于final方法与static方法不具备多态性的理解
- mac 使用java命令运行class文件提示“错误:找不到或无法加载主类“
- HTTP的长连接和短连接
- Redis,Geo,(地理位置信息操作)
- 深入浅出~spring IOC和DI