UITableView的自定义cell

1  初始化 cell的方法中

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;

其内部控件的frame给CGRectZero

并且将cell内部的控件添加到 self.contentView 上面

2 重写布局方法

- (void)layoutSubviews;

内部一定要执行父类的方法

[super layoutSubviews];

内部写控件的frame值

3 关于模型可以写在cell内部,声明为属性,方便使用

但是 要重写setter方法:

- (void)setStudent:(Student *)student{

    if (_student != student) {

        [_student release];

        _student = [student retain];

        

        _headerImageView.image = [UIImage imageNamed:_student.icon];

        _nameLable.text = _student.name;

        _phoneLable.text = _student.phoneNumber;

        _introduceLable.text = _student.introduce;

    }

}

4 cell内部可以声明类方法:

根据字符串的长度 求文本的高度 

+ (CGFloat)heightForString:(NSString *)string{

    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17],NSFontAttributeName, nil]; nsfontattributename

    CGRect rect = [string boundingRectWithSize:CGSizeMake(3 * kImageWidth, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];

    return rect.size.height;

}//类方法

 

posted @ 2016-02-10 17:55  弓林  阅读(132)  评论(0编辑  收藏  举报