编辑时动态增加UITableViewCell的高度(单个单元格)

编辑时动态增加UITableViewCell的高度(单个单元格),uitableview,swift2,Uitableview,Swift2,如何在编辑时增加行(单元格)的大小,就像添加新联系人时一样(文本字段的高度随着输入更多文本而增加)[![field to contact][1]][1] 忽略此图片中的标签 我说的是一个单细胞,我看到了许多与此相关的问题,但没有一个是用swift,我的主要语言是swift,所以我无法想出如何处理这个问题,但我尝试了这个:- tableView.rowHeight = UITableViewAutomaticDimension; tableView.estimatedRowHeig

如何在编辑时增加行(单元格)的大小,就像添加新联系人时一样(文本字段的高度随着输入更多文本而增加)[![field to contact][1]][1]

忽略此图片中的标签

我说的是一个单细胞,我看到了许多与此相关的问题,但没有一个是用swift,我的主要语言是swift,所以我无法想出如何处理这个问题,但我尝试了这个:-

    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()