嘿,所以我有一个UITextView
内部UIView
,我动态加载内容。我正在使用此解决方案调整文本视图的高度
我关闭了自动布局以使其正常工作(其他解决方案,例如sizeToFit()
不使用自动布局开启)但是当我这样做时,即使文本视图的所有内容都被渲染,它也会溢出它包含的边界UIView
。
我尝试使用同样适用于其容器上的文本视图的解决方案,但这并没有做任何事情。
似乎确实有效的一件事是:
newFrame = containerView.frame
newFrame.size.height = textView.frame.size.height
containerView.frame = newFrame
但这不是我需要的,因为我在这个容器视图中也会有几个标签,所以它的高度不能与文本字段的高度相同。
有没有办法在不再次打开自动布局的情况下解决这个问题?(打开自动布局会有帮助吗?)如果打开自动布局可以解决这个问题,那么有没有办法保持文本视图的动态大小(因为打开它会破坏它)?
我对此很陌生。感谢帮助。
哦,我实际上正在开发一个 tvOS 应用程序,而不是 iOS 应用程序。不知道这是否有所作为。
编辑:
这是实际的代码:
@IBOutlet weak var container: UIView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var text: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
print(text.frame.origin.x, text.frame.origin.y)
text.scrollEnabled = false
text.text = "bla blah blah blah boo boo boo boooooo boo blah yo yo yo yo yo hello"
let fixedWidth = text.frame.size.width
let newSize = text.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
var newFrame = text.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
text.frame = newFrame
}
这会在内容更改时动态扩展文本视图。添加:
newFrame = containerView.frame
newFrame.size.height = textView.frame.size.height
containerView.frame = newFrame
调整容器的大小UIView
,但text.frame.origin.y
将文本视图设为 0。因此,将任何其他元素添加到容器中只会与文本视图重叠。