iOS TableViewCell高度自适应

  iOS8.0之前,我们要做到自适应,需要拿到cell的数据模型model, 经过一系列计算得到cell的高度, 非常的麻烦.  iOS8.0之后, 我们想做高度自适应就非常的简单方便了. 我们只需要做好约束然后设置tableView.rowHeight = UITableViewAutomaticDimension即可,计算cell高度的任务就交给系统去处理吧,heightForRowAtIndexPath:这个代理方法都可以不用写了,为了提升第一次加载的速度, 我们可以设置一个预估高度例如tableView.estimatedRowHeight = 100 这个数值理论上讲是可以随意的,但是越接近实际高度越好. 记住一定要自上而下的做好约束,告诉cell应该怎样去扩展,下面我们就来体验一下.

  我们们大致的布局是这样的:

下面我们就来为cell子控件设置一下约束 -  接下来我们定义的kSpacing就为间距8

图片:(1) 距离cell左边的距离都是8  (2)图片宽高都为80 (3)centerY和cell相等 (4)为了防止cell高度过小遮盖图片,设置图片底部与cell底部距离大于等于0. 


标题:(1)左边距离图片最右侧距离为8 (2)顶部和图片顶部相等. (3)标题最右边距离cell最右边为8.

内容:(1)顶部距离标题底部距离为8 (2)左边和标题左边相等. (3)右边和标题右边相等 (4)告诉cell,底部和cell底部的距离至少大于0(为了美观,我们设置为8,保留一些距离哈).

约束设置完毕之后, 配置我们的tableView.rowHeight = UITableViewAutomaticDimension, _tableView.estimatedRowHeight = 100,把heightForRow方法删掉,拿到数据给cell绑定数值,这里不做详细介绍,运然后行我们的程序吧.



OK了,完成自适应了,没有一行计算cell高度的代码,只需要做好AutoLayout一切自动解决,是不是非常的爽.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们在上一篇《通过代码自定义不等高cell》中学习了tableView的相关知识,本文将在上文的基础上,利用sto...
    啊世ka阅读 1,538评论 2 7
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,378评论 0 1
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,757评论 1 9
  • 专注当下需要知识供应。
    一些信仰的的声音阅读 100评论 0 0
  • 话说有一个病叫:马扎口 又叫烂嘴角,专业的叫什么 口角炎。 长在嘴巴的两个角。 为啥大部分都长在嘴角上呢? 嘴角是...
    中医李奇飞阅读 14,299评论 0 6