我正在尝试调整高度大小以包含不同的文本字符串,但在运行时遇到 TextView 不同宽度的问题。 当我在运行时检查框架设置时,宽度小于约束宽度 316。因此,文本被截断。
该场景使用带有 TextView 和嵌入的两个按钮的 ScrollView 。 尽管存在这些警告“在当前配置中关闭了约束引用项。在当前配置中关闭此约束”,但没有可见的约束错误。我试图找到任何不正确的约束,但如果我禁用任何约束,我会立即收到错误。另一位用户建议我应该记录这些约束,但我知道如何做到这一点的唯一方法是手动。具有类似配置的另一个场景可以正常运行,不会出现错误。
导致问题的代码是:
override func viewWillAppear(animated: Bool) {
let fixedWidth = textView.frame.size.width
textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
var newFrame = textView.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
textView.frame = newFrame;
textView.scrollEnabled = false
}
当我暂停代码时,fixedWidth = 300(高度200),但newSize是293 x 169。它没有保持固定宽度。这是由于约束错误还是代码中的错误造成的?
最佳答案
如果您将 UILabel 用于静态文本,只需设置 preferredMaxLayoutWidth等于其宽度。然后自动布局将正确运行,因为intrinsicContentSize将被限制为这个宽度,并且它将自动计算正确的高度。
关于swift - Xcode 6 : Unable to resize textview height without changing the width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32427054/