默认的表格样式通常不能满足正常的开发需要
解决方法 —— 自定义Cell
1> XIB(团购)
2> 纯代码(微博)
3> StoryBoard
XIB的定义步骤
-----------------------------------------------
1> 新建HMTgCell.xib
2> 拽一个需要自定义的控件,摆放其他子控件
3> 新建一个类
* 类名要与XIB的名字保持一致
* 继承自的子类要与XIB中的根节点的类型一致
4> 要连线之前,需要将XIB的根节点类名修改为刚刚新建的类名
5> 连线
6> 在XIB的属性面板,指定可重用标示符
代码创建Cell的步骤
-----------------------------------------------
1> 创建自定义Cell,继承自UITableViewCell
2> 根据需求,确定控件,并定义属性
3> 用getter方法完成控件的实例化,只创建并添加到contentView,不处理位置
4> 定义一个模型属性,通过setter方法,设置cell的显示
-----------------------------------------------
1. cellHeight 可以通过Status计算
解决方法:statusFrame模型,通过setter方法计算行高!
目前存在什么问题?
所有的单元格控件的计算都是重复的,而且每次表格滚动,设置内容都会重新计算。
解决这个问题:
statusFrame模型中,已经包含了status属性。
目前控制器中的数组保存的是status模型,将status模型替换为statusFrame模型{status,所有控件的位置},同样具有status模型
解决步骤
1. 将原有的status模型替换为statusFrame模型
*** 只是修改视图控制器中的代码,暂时不要动cell。
*** 重构代码一定要小步来
问题:
cell中的控件的位置计算,依然是自己计算的。
解决办法:将cell中的status替换为statusFrame就可以拿到控件位置
-----------------------------------------------
代理模式:是父控件(视图控制器)监听子控件的事件,当子控件发生某些事情时,通知父控件工作!
* footView => controller 去工作,使用代理
* controller => footView 去工作,直接调用footView的方法即可