我使用这个名为ReadMoreTextView的开源库来显示大量文本。该库使我能够在显示文本摘录和完整内容之间切换(按钮是我添加的普通UIButton,而不是库中的)。
这个能正常工作。
当我需要展示较少的文本时,问题就出现了。如果我添加一些不超过UITextView高度的内容,则希望隐藏“更多/更少”切换按钮。因此,我想到取完整内容高度,仅当其大于文本视图的高度时才显示切换按钮。
在上面的示例中,我添加了一长段超出了文本视图边界的段落。文本视图的高度为128。但内容高度也返回128。有一个特定库方法称为
我在图书馆的Github页面上开了一个问题,但所有者要求在这里提问。
为什么内容高度返回错误的值?
顺便说一下,这是我在上面示例中使用的项目。
当我需要展示较少的文本时,问题就出现了。如果我添加一些不超过UITextView高度的内容,则希望隐藏“更多/更少”切换按钮。因此,我想到取完整内容高度,仅当其大于文本视图的高度时才显示切换按钮。
在上面的示例中,我添加了一长段超出了文本视图边界的段落。文本视图的高度为128。但内容高度也返回128。有一个特定库方法称为
boundingRectForCharacterRange
,它应该返回内容高度,但返回错误值(100)。print("TEXTVIEW HEIGHT: \(textView.bounds.height)") // 128
print("CONTENT HEIGHT: \(textView.contentSize.height)") // 128
let rect = textView.layoutManager.boundingRectForCharacterRange(range: NSRange(location: 0, length: textView.text.count), inTextContainer: textView.textContainer)
print("TEXT HEIGHT: \(rect.height)") // 100
我在图书馆的Github页面上开了一个问题,但所有者要求在这里提问。
为什么内容高度返回错误的值?
顺便说一下,这是我在上面示例中使用的项目。
UILabel
;因此,文本是只读的吗?看起来这个行为应该很容易实现。 - meaning-matters