一、目的
好长一段时间,都是通过手动计算高度,在tableView 的 row 的高度代理方法里面去做自适应,前段时间有使用到 autolayout, 做个记录当做回顾
二、常使用的几个方法
-
自己计算高度
通过在网络数据请求给model赋值的时候,在里面计算得到对应的 row 的高度, 保存在 model, 在 tabelView 的高度代理中取到计算出来的值.
优点:高度精确,可控
缺点:计算有时候比较复杂,消耗工时
-
使用layout, 让tableView自动计算
在 iOS 8.0 之后, 可以使用layout,xib和代码都可以使用,使用的时候让整个 cell 里面的空间在垂直方向都有约束.给tableView添加下面俩句代码,不用写 row 高度的代理方法,
self.tableView.estimatedRowHeight = 80.0f;
self.tableView.rowHeight = UITableViewAutomaticDimension;
优点:省去了计算的步骤,开发快捷
缺点:发现自适应的高度不是及时刷新,通过cell进入重用池的时候才会给高度赋值,使用的时候临时采用的是手动刷新tableView.还有一些不可控的因素,所以目前写比较复杂或者以后会改动比较多的我没有采用这种方式
-
使用三方
优点:开发高效,快捷
缺点:不可控性