Ios 如何使用UITableViewAutomaticDimension更新单元格的高度?

Ios 如何使用UITableViewAutomaticDimension更新单元格的高度?,ios,uitableview,uitextview,Ios,Uitableview,Uitextview,我在tableViewCell中有一个UITextView,并使用列出的iOS 8UITableViewAutomaticDimension方法 如果用户将新行添加到UITextView,因此textView、单元格高度应该增加,我如何更新高度 尝试: cell.layoutIfNeeded() cell.setNeedsUpdateConstraints() 这些都不起作用 如果我重新加载手机,比如 tableView.reloadRowsAtIndexPaths([iindexPath],

我在tableViewCell中有一个
UITextView
,并使用列出的iOS 8
UITableViewAutomaticDimension
方法

如果用户将新行添加到
UITextView
,因此textView、单元格高度应该增加,我如何更新高度

尝试:

cell.layoutIfNeeded()
cell.setNeedsUpdateConstraints()
这些都不起作用

如果我重新加载手机,比如

tableView.reloadRowsAtIndexPaths([iindexPath], withRowAnimation: .None)

这是可行的,但我需要处理辞职和显示键盘。我会避免的。任何解决方法?

过一段时间后,
textView
将开始滚动,以便在需要执行
textViewDidChangeText:
方法时,在新行上增加其高度,并通过计算文本的高度来增加其高度


要使用
UITableViewAutomaticDimension
您需要从上到下向
子视图添加约束,我认为您还应该为textView的高度约束创建和设置IBOutlet,并在
textViewDidChangeText
方法上设置常量值,在这种情况下
tableViewCell
高度将动态变化

需要添加以下方法:

func textViewDidChange(textView: UITextView) {

    tableView.beginUpdates()
    tableView.endUpdates()
}

它将在不重新加载tableview的情况下更新约束

如果我设置高度约束,它将停止UITableViewAutomaticDimension工作,然后通过设置框架来增加其高度此答案在不重新加载tableview的情况下工作。在iOS9中测试。当更改视图的高度约束(而不是文本视图)时,此功能也会起作用。在iOS10中测试。