使用 UITextView 自动调整 UITableViewCell 的大小,其中文本同时与垂直中心对齐?

Autoresizing UITableViewCell with UITextView which has text aligned to vertical center simultaneously?

单元格包含多行文本,所以我决定使用文本视图。

textView.textContainerInset = UIEdgeInsets.zero 删除额外的填充。垂直居中的代码:

extension UITextView {
    func centerVertically() {
        var topCorrect = (self.bounds.size.height - self.contentSize.height * self.zoomScale) / 2
        topCorrect = topCorrect < 0.0 ? 0.0 : topCorrect;
        self.contentInset.top = topCorrect
    }
}

如果我在 tableView(_:, heightForRowAt:) 中预定义单元格高度,这将起作用。

但是如果我使用 UITableView.automaticDimension 调整单元格的大小,一切都会被破坏。

如何解决这个问题?

  1. 使用自动布局并将文本视图的前导、尾随、顶部和底部约束固定到单元格。
  2. 在文本视图中禁用滚动
  3. 为 textview 添加一个高度约束,使高度大于或等于一个常量值(这是将显示在屏幕上的最小值)
  4. 用户.自动维度

试试这个,让我知道这是否适合你