Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 动态更改单元格';在键入文本时调整高度,并重新加载包含的表格视图以调整大小_Ios_Swift_Uitableview_Size - Fatal编程技术网

Ios 动态更改单元格';在键入文本时调整高度,并重新加载包含的表格视图以调整大小

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

我正在尝试使用多种单元格类型创建UITableView。 我的一个单元格在键入文本时需要动态更改其高度。 下面是更改单元格高度(在单元格类中)的代码,该代码运行良好:

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?()
}
以及您的tableView
cellForRowAt

cell.textDidChanges = {
    self.tableView.beginUpdates()
    self.tableView.endUpdates()
} 

首先,需要更新的是单元格,而不是表格。第二,细胞是亚类的吗?第三,您需要充分利用自动布局来实现这一点,我在代码中看不到任何约束。答案是以下两行:self.tableView.beginUpdates()self.tableView.endUpdates(),谢谢您的回答!!