我正在尝试显示可能占用多行的UILabel
,但我对高度调整大小有疑问。
以下是我在单行上显示正确文本时的外观:
当文本跨越多行时,会发生这种情况:
这是我正在使用的界面构建器设置:
理想情况下,我希望文本视图保留在屏幕顶部,只需占用尽可能多的空间来显示文本,但我真的不知道我哪里出错了。
答案 0 :(得分:0)
使用自动布局处理文本视图有点棘手。如果可能,请使用UILabel
。如果没有,那么文本视图有几个问题,最易于管理的解决方案是添加高度约束,然后在代码中对其进行操作。
文本视图内容的高度可以确定为:
let height = textView.sizeThatFits(textView.frame.size).height
也可以使用
let height = textView.contentSize.height
但结果有时是不正确的。
您需要设置文本视图的委托,以便在更改时刷新文本视图的大小。
答案 1 :(得分:0)
你确实根据你的约束给了它这样做的许可。任何高度> 0,只要距离上边距为20。由于您没有任何其他视图可以根据您的身高,您可以将插座连接到您的标签上并使用它:
@IBOutlet weak var label: UILabel!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
label.sizeToFit()
}
答案 2 :(得分:0)
一定会奏效。