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

1tu0hz3e  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(182)

如何在编辑时增加行(单元格)的大小,就像添加新联系人时一样(文本字段的高度随着我们输入的文本增加而增加)[![field into contact][1]][1]
忽略此picx 1c 0d1x中的标签
我说的是一个单一的细胞,我已经看到了许多问题,以有关这一点,但没有一个是在迅速和我的主要语言是迅速,所以我不能找出如何处理这一点,但我尝试了这一点:

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
}

但是它增加了所有单元格的大小,并且在编辑文本视图时不做任何事情,我知道我正在尝试的不是正确的方法,如果有人知道我如何处理这个问题,请指导我,这将对我很有帮助:)如果我的问题不够清楚,请让我知道我会解决它

xzv2uavs

xzv2uavs1#

你走的路是对的。
你不需要一直设置tableView.rowHeight = UITableViewAutomaticDimension;tableView.estimatedRowHeight = 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()

相关问题