在我的故事板中,我有一个动态生成的UITableViews的UITableViewCell。每个单元格包含2个标签和1个文本视图:
ios - 如何将UITableViewCell的高度调整为内部UITextView的内容?-LMLPHP
我有一个代码可以根据文本量调整文本字段的大小:

let fixedWidth = cell.myComment.frame.size.width
cell.myComment.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
let newSize = cell.myComment.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
var newFrame = cell.myComment.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
cell.myComment.frame = newFrame;

当我将textView的背景色设置为红色时,我看到:
ios - 如何将UITableViewCell的高度调整为内部UITextView的内容?-LMLPHP
细胞本身-我在这里设定大小:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
     if indexPath.row == 0 {
         return 100//this is my static cell
     }
     else {
         return 117; //for now it's hardcoded - how can I set this value dynamically based on content?
     }
}

因此,正如我在上面的注释中所写的,如何根据文本视图中的文本量动态设置单元格的高度?

最佳答案

获取自动调整表格单元格大小(我建议使用基于自动布局的单元格)的关键如下:
将子视图添加到contentViewUITableViewCell
在子视图和contentView之间提供约束,以便子视图到达表单元格的所有边缘。在您的例子中,这可能意味着将leadingtrailingtopbottomUITextView边与contentView的相应边对齐。
将行高设置为UITableViewAutomaticDimension,而不是硬编码CGFloat
在控制器中的某个位置,用tableView.estimatedRowHeight = x提供高度估计值(硬编码常量是可以的,这是为了提高性能)。

10-08 15:00