通过代码创建cell
1.新建一个继承自UITableViewCell的类
2.重写initWithStyle:reuseIdentifier:方法
Ø添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中)
Ø进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体固定的图片)
3.提供2个模型
Ø数据模型: 存放文字数据图片数据
Øframe模型: 存放数据模型所有子控件的framecell的高度
4.cell拥有一个frame模型(不要直接拥有数据模型)
5.重写frame模型属性的setter方法: 在这个方法中设置子控件的显示数据和frame
6.frame模型数据的初始化已经采取懒加载的方式(每一个cell对应的frame模型数据只加载一次)
获得字体的frame大小的对象方法
NSDictionary *attrs = @{NSFontAttributeName : font};先获得字体字典
[text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil] maxSize为该字体能显示的最大size
不一定显示的view可以通过if进行判断然后hidden改变显示状态
if (status.picture) { // 有配图
self.pictureView.hidden = NO;
self.pictureView.image = [UIImage imageNamed:status.picture];
} else { // 没有配图
self.pictureView.hidden = YES;
}
时刻要记得tableview的各方法调用顺序——还有循环利用缓存池时要注意其中的控件是否隐藏——要注意性能,只加载一次的别放在多次调用的方法里