UITableViewCell AutoLayout 動態行高(iOS 8.0+)
最近有空整理記錄一下在AutoLayout中如何使UITableViewCell的行高根據內容(以UILabel的多行顯示為例)達到自適應高度。
如下圖:cell 高度沒有動態設置,label的文字沒有顯示全,
1、首先在自定義的cell中,設置好所需要的約束。
這里寫圖片描述
2、保持默認狀態:Row Height 是Default而不是custom的數值,否則之后不管你如何操作。
這里寫圖片描述
3、還有一點要注意的是,UILabel的行數要設置為0,表示UILabel顯示的是多行。
這里寫圖片描述
4、最后實現UITableView的代理:
//設置行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewAutomaticDimension;//自動尺寸
}
//預估行高
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 44;
}