UITextView无法使用exclusionPaths确定适当的高度

时间:2019-04-21 03:31:56

标签: uitableview autolayout uitextview exclusionpath

在我的UITableViewCell中,我像这样设置排除路径:

override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
  let choiceCell = cell as! ItemChoiceTableViewCell

  guard choiceCell.textView.textContainer.exclusionPaths.count == 0 else {
    return
  }

  var frame = choiceCell.displayImageView.bounds

  frame.size.height -= choiceCell.textView.frame.origin.y - choiceCell.displayImageView.frame.origin.y

  choiceCell.textView.textContainer.exclusionPaths = [UIBezierPath(rect: frame)]

  choiceCell.layoutSubviews()
}

尽管表格视图单元格的高度通常太短,但是我相信正在发生的事情是添加了排除路径后没有正确地重新计算必要的大小。 layoutSubviews的位置,例如setNeedsLayoutsetNeedsDisplay,但我无法让它们正常工作。

添加排除路径后,如何强制重新计算UITextView的大小?

0 个答案:

没有答案