⾃自定义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];
}