在我的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的大小?