一锰蓬、目的
好長(zhǎng)一段時(shí)間,都是通過手動(dòng)計(jì)算高度,在tableView 的 row 的高度代理方法里面去做自適應(yīng),前段時(shí)間有使用到 autolayout, 做個(gè)記錄當(dāng)做回顧
二旬昭、常使用的幾個(gè)方法
-
自己計(jì)算高度
通過在網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求給model賦值的時(shí)候,在里面計(jì)算得到對(duì)應(yīng)的 row 的高度, 保存在 model, 在 tabelView 的高度代理中取到計(jì)算出來的值.
優(yōu)點(diǎn):高度精確,可控
缺點(diǎn):計(jì)算有時(shí)候比較復(fù)雜,消耗工時(shí)
-
使用layout, 讓tableView自動(dòng)計(jì)算
在 iOS 8.0 之后, 可以使用layout,xib和代碼都可以使用,使用的時(shí)候讓整個(gè) cell 里面的空間在垂直方向都有約束.給tableView添加下面?zhèn)z句代碼,不用寫 row 高度的代理方法,
self.tableView.estimatedRowHeight = 80.0f;
self.tableView.rowHeight = UITableViewAutomaticDimension;
優(yōu)點(diǎn):省去了計(jì)算的步驟,開發(fā)快捷
缺點(diǎn):發(fā)現(xiàn)自適應(yīng)的高度不是及時(shí)刷新,通過cell進(jìn)入重用池的時(shí)候才會(huì)給高度賦值,使用的時(shí)候臨時(shí)采用的是手動(dòng)刷新tableView.還有一些不可控的因素,所以目前寫比較復(fù)雜或者以后會(huì)改動(dòng)比較多的我沒有采用這種方式
-
使用三方
優(yōu)點(diǎn):開發(fā)高效,快捷
缺點(diǎn):不可控性