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

Ján*_*nos 8 uitableview uitextview ios

我有一个UITextViewtableViewCell,并使用此处UITableViewAutomaticDimension列出的iOS 8提供的方法.

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

尝试:

cell.layoutIfNeeded()
cell.setNeedsUpdateConstraints()
Run Code Online (Sandbox Code Playgroud)

这些不起作用.

如果我重装电池,就像

tableView.reloadRowsAtIndexPaths([iindexPath], withRowAnimation: .None)
Run Code Online (Sandbox Code Playgroud)

这工作,但后来我需要处理辞职和显示键盘.我会避免它.任何解决方法?

Ján*_*nos 8

需要添加以下方法:

func textViewDidChange(textView: UITextView) {

    tableView.beginUpdates()
    tableView.endUpdates()
}
Run Code Online (Sandbox Code Playgroud)

它将更新约束而无需重新加载tableview


Adn*_*tab 0

一段时间后,textView每当您需要实现textViewDidChangeText:方法并通过计算文本高度来增加其高度时,就会开始滚动以增加新行的高度。

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