autolayout在cell高度变化中的应用

情景说明:一个cell中有label,有的label大小固定,有的lable大小随文字改变,在最下面的是一张图片,大小也不固定(只给左上约束属于填充类型的,在xib中要先给一张图片,否则会有约束错误)

//在这个里面传递数据,注意:如果pictureView不存在,则需再cell的set方法中将image置为nil(否则它会加载xib中的image)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    // 设置 cell 的内容
    YZJCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    cell.weibo = self.weiboList[indexPath.row];
    
    // 通知 cell 更新布局->就可以知道 cell 的准确高度了,这个一定要写
    [cell layoutIfNeeded];

    // 自动布局之后,获得 label 的紧凑的尺寸,如果label在cell的最下面就写这个
//    CGSize labelSize = [cell.contentLabel systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
//    return cell.contentLabel.frame.origin.y + labelSize.height + 20 + cell.pictureHeightConstraint.constant;


    CGSize iconSize = [cell.pictureView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
    return cell.pictureView.frame.origin.y + iconSize.height;
}

 

转载于:https://www.cnblogs.com/boy332/p/4461905.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值