UITextView не определяет правильную высоту с помощью exclusionPaths - PullRequest
0 голосов
/ 21 апреля 2019

В моем 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 пересчитать после добавления пути исключения?

...