系统默认的UITableViewCell的每行都有横线(分隔符),就算没有数据也是如此,有时候我们想只在有数据的地方有下划线,可以去除下划线,然后在awarkFromNid方法中使用addsubview的方法加入下划线到UITableViewCell的contentView中。但有些时候我们还要自定义其他类型的Cell。
自定义cell有两种方法,一种是通过xid自定义控件,一种是通过代码自定义cell。
通过xid自定义cell的步骤:
- 新建一个xib文件描述一个view的内部结构(假设叫做MJTgCell.xib)
- 新建一个自定义的类
(自定义类需要继承自系统自带的view, 继承自哪个类, 取决于xib根对象的Class)
- 新建类的类名最好跟xib的文件名保持一致(比如类名就叫做MJTgCell)
- 将xib中的控件和自定义类的.m文件进行连线
- 提供一个类方法返回一个创建好的自定义view(屏蔽从xib加载的过程)
- 提供一个模型属性让外界传递模型数据
- 重写模型属性的setter方法,在这里将模型数据展示到对应的子控件上面
通过代码自定义cell步骤:
1.新建一个继承自UITableViewCell的类
2.重写- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier
:(NSString *)reuseIdentifier方法:
- Ø 添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中)
- Ø 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)
3.提供2个模型
- Ø 数据模型: 存放文字数据\图片数据
- Ø frame模型: 存放数据模型\所有子控件的frame\cell的高度
4.cell拥有一个frame模型(不要直接拥有数据模型)
5.重写frame模型属性的setter方法: 在这个方法中设置子控件的显示数据和frame
6.frame模型数据的初始化已经采取懒加载的方式(每一个cell对应的frame模型数据只加载一次)