UITableViewCell加载网络图片自适应cell高度初探索

当UITableViewCell中包含UIImageView并需要根据网络图片的宽高比自适应高度时,可以通过设置AutoLayout约束来实现。首先在XIB中配置UIImageView的约束,然后设置UITableView的属性以允许细胞自适应内容高度。在cell类中创建一个属性存储图片的宽高比,并在代理方法中更新此比例,调整UIImageView的约束以适应图片尺寸。运行后,可以看到图片按照比例正确显示,同时不影响其他控件布局。
摘要由CSDN通过智能技术生成

cell上控件在请求网络图片的时候,通常会返回图片的宽高比;在项目中碰到需要按照比例来显示图片的问题,如果只有图片一个控件按照宽高比直接设置frame即可,但是如果cell上有很多的控件,自适应高度是比较复杂的.


我们知道在AutoLayout中只要不设置UILabel的高度是可以让其自适应文本高度的,那么UIImageView可不可以也自适应高度呢.

UILabel之所以能够自适应高度,肯定也是在cell显示之前,系统通过UILabel的约束条件/字体大小和显示的文本内容计算出来的;因此只要我们在cell显示之前将UIImageView的各个约束设置好就可以实现UIImageView在cell上自适应高度

NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:字体大小],NSFontAttributeName, nil];
    [显示的文本 boundingRectWithSize:CGSizeMake(UILabel宽度, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];


(此处只说明固定了图片宽度的情况,其余各种情况可以更改更改相应的约束实现)

1. 我们先在cell的xib中拖入一个UIImageView,对其约束好距离左边,右边,上边的距离(当然如果你想全部用代码写约束也行......)


2. 然后我们给tableview设置两个属性,让cell的行高自适应控件的高度

// 设置行高为自动
    self.tableView.rowHeig
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值