Ios UITableViewAutomaticDimension使空单元格过大

Ios UITableViewAutomaticDimension使空单元格过大,ios,uitableview,uitableviewautomaticdimension,Ios,Uitableview,Uitableviewautomaticdimension,我正在使用UITableViewAutomaticDimension创建一个TableView,但由于某些原因,最后一个单元格后面的“额外”空白单元格的尺寸与最后一个包含文本的单元格的尺寸相同。我希望空白单元格都是更小的大小,除非填充了需要自动调整大小的文本。我怎样才能改变这个?任何帮助都将不胜感激。我对这个很陌生。谢谢大家!请参见下面的TableView屏幕截图。我添加了代码以供参考 首先,设置与情节提要的默认行高度。空行将设置为此高度 然后,对于包含文本的行,重写此表视图的委托方法: op

我正在使用UITableViewAutomaticDimension创建一个TableView,但由于某些原因,最后一个单元格后面的“额外”空白单元格的尺寸与最后一个包含文本的单元格的尺寸相同。我希望空白单元格都是更小的大小,除非填充了需要自动调整大小的文本。我怎样才能改变这个?任何帮助都将不胜感激。我对这个很陌生。谢谢大家!请参见下面的TableView屏幕截图。我添加了代码以供参考


首先,设置与情节提要的默认行高度。空行将设置为此高度

然后,对于包含文本的行,重写此表视图的委托方法:

optional func tableView(_ tableView: heightForRowAt indexPath: IndexPath) -> CGFloat
这将强制表视图返回指定行的高度。通过索引路径从行中获取文本。计算文本高度并返回正确的行高度

以下是计算字符串帧的方法:

func boundingRect(with size: CGSize, 
          options: NSStringDrawingOptions = [], 
       attributes: [String : Any]? = nil, 
          context: NSStringDrawingContext?) -> CGRect

通过将其添加到viewDidLoad(),可以隐藏空单元格:

func boundingRect(with size: CGSize, 
          options: NSStringDrawingOptions = [], 
       attributes: [String : Any]? = nil, 
          context: NSStringDrawingContext?) -> CGRect
tableView.tableFooterView = UIView()