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

时间:2018-12-10 07:12:08

标签: ios swift uitableview cell uitableviewautomaticdimension

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

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 个答案:

答案 0 :(得分:1)

  1. 使用自动布局,并将textview的前导,尾随,顶部和底部,约束约束到单元格。
  2. 禁用在textview中滚动
  3. 添加高度限制,以使高度大于或等于textview的恒定值(这是将在屏幕上显示的最小值)
  4. 用户.automatic尺寸

尝试一下,让我知道这是否为您解决