Ios 动态更改单元格';在键入文本时调整高度,并重新加载包含的表格视图以调整大小
我正在尝试使用多种单元格类型创建UITableView。 我的一个单元格在键入文本时需要动态更改其高度。 下面是更改单元格高度(在单元格类中)的代码,该代码运行良好:Ios 动态更改单元格';在键入文本时调整高度,并重新加载包含的表格视图以调整大小,ios,swift,uitableview,size,Ios,Swift,Uitableview,Size,我正在尝试使用多种单元格类型创建UITableView。 我的一个单元格在键入文本时需要动态更改其高度。 下面是更改单元格高度(在单元格类中)的代码,该代码运行良好: func textViewDidChange(_ textView: UITextView) { var newFrame:CGRect = noteTextView.frame newFrame.size.height = noteTextView.contentSize.height noteTextV
func textViewDidChange(_ textView: UITextView)
{
var newFrame:CGRect = noteTextView.frame
newFrame.size.height = noteTextView.contentSize.height
noteTextView.frame = newFrame
self.frame = CGRect(x: self.frame.origin.x, y: self.frame.origin.y, width: self.frame.width, height: noteTextView.contentSize.height)
}
但是牢房盖在他下面的牢房上。
在父tableView成员上添加这些行也没有帮助:
mParentTableView.setNeedsLayout()
mParentTableView.layoutIfNeeded()
知道如何告诉tableView recalc其包含的单元格大小吗
(XCode 9,Swift 4)使用tableView的
[tableView开始更新]
和[tableView结束更新]
将解决此问题。有关详细信息,请参阅。在UITableViewCell
上设置委托
var textDidChanges: (() -> Void)? = nil
func textViewDidChange(_ textView: UITextView) {
textDidChanges?()
}
以及您的tableViewcellForRowAt
cell.textDidChanges = {
self.tableView.beginUpdates()
self.tableView.endUpdates()
}
首先,需要更新的是单元格,而不是表格。第二,细胞是亚类的吗?第三,您需要充分利用自动布局来实现这一点,我在代码中看不到任何约束。答案是以下两行:self.tableView.beginUpdates()self.tableView.endUpdates(),谢谢您的回答!!