我使用静态表视图来显示一些数据,因为我的数据是动态的,我需要一个Cell,可以根据其内容调整其大小。我已覆盖heightForRowAtIndexPath:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.row == 4 {
let size = itemDescription.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)
return size.height
}
return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
我已经尝试了UILayoutFittingCompressedSize
和UILayoutExpandedSize
,两者都会返回一个高度为140的CGSize
,这不足以显示我的文字。
我也尝试增加UILabel
中的行数,但它也没有用。
在故事板上,我的单元格是基本的TableViewCell
。
有没有人知道发生了什么?
答案 0 :(得分:2)
要使用自行调整单元格,您无需覆盖heightForRowAtIndexPath
。覆盖estimatedHeightForRowAtIndexPath
并返回估算值或UITableViewAutomaticDimension
。而且,重要的是,您必须对单元格的所有4个边都有明确的约束。对于UILabel
,将0指定为行的数字以启用文本自动高度。