最早實(shí)現(xiàn)Cell動(dòng)態(tài)高度使用單個(gè)元素高度計(jì)算在相加出現(xiàn)多行UILabel用計(jì)算文本所需高度計(jì)算,準(zhǔn)確度不高铐炫。
計(jì)算高度代碼
后來(lái)使用預(yù)估高度和AutoLayout手動(dòng)計(jì)算Cell高度并緩存
Controller代碼
Cell代碼
最后使用預(yù)估高度和AutoLayout自動(dòng)計(jì)算Cell高度,是不是很簡(jiǎn)單,這里有個(gè)坑cell高度使用UITableViewAutomaticDimension? sectionHeader? 和sectionFooter 高度也需要使用UITableViewAutoMaticDimension? 否則類似聊天界面會(huì)出現(xiàn)跳屏現(xiàn)象? ,如果出現(xiàn)不換行現(xiàn)象可以設(shè)置label的preferredMaxLayoutWidth 最大寬度值 和[label setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical] 這個(gè)方法