编辑时动态增加UITableViewCell的高度(单个单元格)
如何在编辑时增加行(单元格)的大小,就像添加新联系人时一样(文本字段的高度随着输入更多文本而增加)[![field to contact][1]][1] 忽略此图片中的标签 我说的是一个单细胞,我看到了许多与此相关的问题,但没有一个是用swift,我的主要语言是swift,所以我无法想出如何处理这个问题,但我尝试了这个:-编辑时动态增加UITableViewCell的高度(单个单元格),uitableview,swift2,Uitableview,Swift2,如何在编辑时增加行(单元格)的大小,就像添加新联系人时一样(文本字段的高度随着输入更多文本而增加)[![field to contact][1]][1] 忽略此图片中的标签 我说的是一个单细胞,我看到了许多与此相关的问题,但没有一个是用swift,我的主要语言是swift,所以我无法想出如何处理这个问题,但我尝试了这个:- tableView.rowHeight = UITableViewAutomaticDimension; tableView.estimatedRowHeig
tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = 44;
但是编辑时它不起作用,然后我尝试获取我的textView中的内容大小,它位于我的tableView单元格内,并根据textView的内容大小调整tableView单元格的大小,方法如下:-
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = 44;
return txtViewDescription.contentSize.width
}
但它增加了所有单元格的大小,在编辑textview时什么都不做,我知道我尝试的方法不适合它,如果有人知道我该如何处理这个问题,那么请指导我,这将对我非常有帮助:)如果我的问题不够清楚,请告诉我我会解决它。你走的是正确的道路 您不需要设置
tableView.rowHeight=UITableViewAutomaticDimension代码>和tableView.EstimateDrowEight=44代码>始终-您只需在初始设置时执行一次即可(可能viewDidLoad
)
你需要做的事情如下所示
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath == indexPathOfCellBeingEdited {
txtViewDescription.contentSize.width
} else {
return 44
}
}
基本上,此函数将为每一行调用一次,因此在决定是否返回计算高度的默认高度之前,您需要查看所在的行
为了强制tableView重新计算行的高度,您可能需要调用
tableView.beginUpdates()
tableView.endUpdates()