美文网首页
Autolayout之自定义TableViewCell的尺寸

Autolayout之自定义TableViewCell的尺寸

作者: 我才是臭吉吉 | 来源:发表于2019-03-04 11:51 被阅读0次

注:本文翻译自Working with Self-Sizing Table View Cells

在iOS中,你可以使用Auto Layout定义TableViewCell的高度;但是,此特性默认没有开启。

一般来说,cell的高度是由tableView代理对象的tableView:heightForRowAtIndexPath:方法来决定的。要实现自定义尺寸的TableViewCell,你必须将tableView的rowHeight属性设置为UITableViewAutomaticDimension。你还需要给estimatedRowHeight属性赋一个值。一旦这两个属性都被设置后,系统就会使用Auto Layout来计算每一行的实际高度。

tableView.estimatedRowHeight = 85.0
tableView.rowHeight = UITableViewAutomaticDimension

下一步,在TableViewCell的ContentView中布局相关内容。要定义cell的高度,你需要从ContentView的顶部到底部边界设置一个完整的约束和视图链来填满整个区域。如果你的视图中存在真实内容尺寸高度,系统便会使用这些值。如果没有,你就必须添加相应的高度约束,要么设置到视图上,要么就直接设置到ContentView自身。

img

此外,尽可能让估算的行高精确一些。系统计算的项目,比如滑动条的高度,是基于这个估算值的。估算值越精确,用户体验就会越连贯。

说明

当使用TableViewCell时,你不能改变预定义内容的布局(如textLabeldetailTextLabelimageView属性)。

可支持如下约束:

  • 相对于cell的ContentView来定位子视图的约束。
  • 相对于cell的bounds来定位子视图的约束。
  • 相对于预定义内容来定位子视图的约束。

相关文章

网友评论

      本文标题:Autolayout之自定义TableViewCell的尺寸

      本文链接:https://www.haomeiwen.com/subject/dlibuqtx.html