У меня установлен UITextView для предварительного просмотра 4 строк текста, когда пользователь нажимает «читать дальше», ограничение устанавливается равным 0 максимальным строкам и отображается во всю длину.
func showMore() {
self.readMoreLabel.snp.updateConstraints { (make) -> Void in
make.height.equalTo(0)
}
_descriptionHeight?.deactivate()
descriptionTextView.textContainer.maximumNumberOfLines = 0
descriptionTextView.invalidateIntrinsicContentSize()
}
Это прекрасно работает, но в некоторых случаях количество строк текста меньше или равно 4, поэтому нет необходимости в кнопке «читать дальше».
Я не вижу способа рассчитать, если текст меньше 4-строчного предела, чтобы скрыть кнопку read more
. Так как размер содержимого ограничен линией строки, я не могу проверить, соответствует ли высота кадра или аналогичные стандартные методы.
Вот что я попробовал без удачи:
func setDescription(_ description: NSAttributedString) {
descriptionTextView.attributedText = description
setNeedsLayout()
layoutIfNeeded()
if descriptionTextView.contentSize.height < descriptionTextView.bounds.height {
self.readMoreLabel.snp.updateConstraints { (make) -> Void in
make.height.equalTo(0)
}
}
}
Может кто-нибудь посоветовать, как мне выполнить проверку, которая сможет рассчитать, если содержание uitextview будет как-то меньше 4 строк?