UITextView не определяет правильную высоту с помощью exclusionPaths

В моем 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 лайк setNeedsLayout а также setNeedsDisplay но я не могу заставить их работать должным образом.

Как заставить размер UITextView пересчитать после добавления пути исключения?

0 ответов

Другие вопросы по тегам