爱程序网

iOS学习 - 8 TableViewCell 自适应高度

来源: 阅读:

1.自定义 Cell

@property (weak, nonatomic) IBOutlet UILabel *testLabel;

+(instancetype)initTableViewCell:(UITableView *)tableView;
// Cell 高度方法
-(void)cellAutoLayoutHeight:(NSString *)str;

Cell.m

-(void)cellAutoLayoutHeight:(NSString *)str{
    self.testLabel.numberOfLines = 0;
    self.testLabel.lineBreakMode = NSLineBreakByWordWrapping;
    self.testLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.testLabel.frame);
    self.testLabel.text = str;

}

+(instancetype)initTableViewCell:(UITableView *)tableView{
    TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell"];
    if (cell == nil) {
        cell = [[TableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"TableViewCell"];
    }
    return cell;

}

2. cellForRowAtIndexPath 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    TableViewCell *cell = [TableViewCell initTableViewCell:tableView];
    cell.testLabel.text = _str;
    cell.testLabel.numberOfLines = 0;
    return cell;
}

heightForRowAtIndexPath

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    TableViewCell *cell = [TableViewCell initTableViewCell:tableView];
    [cell cellAutoLayoutHeight:_str];
    CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingExpandedSize];
    return size.height + 1;
}

如右图

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助