【发布时间】:2019-06-26 15:28:38
【问题描述】:
我有一个 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 行的检查吗?
【问题讨论】:
-
恐怕这个解决方案对我不起作用,当有 4 行时它返回 1 或 2 行(如果它是无限的,则返回更多)
标签: ios swift uitextview