⾃自定义cell的步骤(每个cell的⾼高度不⼀一样,每个cell⾥里⾯面显⽰示的 内容也不⼀一样)

新建⼀一个继承⾃自UITableViewCell的⼦子类

2. 在initWithStyle:方法中进行⼦控件的初始化
1> 将有可能显⽰示的所有⼦子控件都添加到contentView中
2> 顺便设置⼦子控件的⼀一些属性(⼀一次性的设置:字体、⽂文字颜⾊色、 背景

3. 提供2个模型
1> ⼀一个是数据模型(⽂文字数据 + 图⽚片数据)
2> ⼀一个是frame模型(数据模型 + 所有⼦子控件的frame + cell 的⾼高度)

4. cell应该提供⼀一个frame模型属性
1> 将frame模型传递给cell
2> cell根据frame模型给⼦子控件设置frame,根据数据模型给⼦子控 件设置数据
3> cell根据数据模型决定显⽰示和隐藏哪些⼦子控件

5. 在tableView的代理⽅方法返回cell的⾼高度 

 

计算文字label的尺寸方法

 

- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxW:(CGFloat)maxW
{
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSFontAttributeName] = font;
    CGSize maxSize = CGSizeMake(maxW, MAXFLOAT);
    return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
}
 
- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font
{
    return [self sizeWithText:text font:font maxW:MAXFLOAT];
}