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,302評論 0 6