使用了Autolayout的UITableViewCell动态布局和高度动态改变自适应

学习的原文:http://blog.163.com/china_uv/blog/static/1171372672014111681232340/


首先我使用了xib来自定义cell,并且给cell添加好了约束


此处要注意,所有控件必须添加到ContentView上


一定要使cell上的子视图的边缘固定到ContentView上面,特别是顶部和底部的边距约束,参考下图



如果是用代码设置的约束,那要到cell的updateConstraints方法里面来设置,如果有多个cell的样式不一样,还需要单独设置其不同的标识符,详情参考原文,此处不多说


下面是iOS8以上的自适应方法:

iOS8 - Self-Sizing Cells


rowHeight这个属性需设置为UITableViewAutomaticDimension

estimatedRowHeight只要设置为非0值即可开启行高估算,一般设置为接近平均行高的值。这样做是为tableView上还没有显示在屏幕上的cell提供了一个临时的估算的行高。然后,当cell即将滚入屏幕范围内的时候,会计算出实际的高度。

一般来说,行高估算值不需要太精确——它只是被用来修正tableView中滚动条的大小的,当你在屏幕上滑动cell的时候,即便估算值不准确,tableView还是能很好地调节滚动条。


完成以上步骤即可实现cell的高度自适应。


如果没有写estimatedRowHeight属性,或者行高比较极端,滚动条出现明显的跳跃时,也可使用这个方法即来设置cell高度的估算(return处随意写个数字即可,跟它的属性用法一样)



注意不是这个方法


下面是iOS8之前也能用的自适应方法:


首先这个label我没有设置高度的约束



然后把label上的文字传入此方法,获得label的高度



有图片的话在返回的高度处加上图片的高度即可。


imageView也可以用 sizeToFit 方法来自适应图片的大小



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值