关于自定义cell——15-05-13

通过代码创建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的各方法调用顺序——还有循环利用缓存池时要注意其中的控件是否隐藏——要注意性能,只加载一次的别放在多次调用的方法里      

原文地址:https://www.cnblogs.com/tusiji7/p/4501783.html