我正在尝试调整高度以包含不同的文本字符串,但我在运行时遇到textviews的不同宽度问题。 当我在运行时检查帧设置时,宽度小于约束宽度316.结果文本被切断。
场景使用带有textview的滚动视图和嵌入的两个按钮。 没有可见的约束错误,尽管存在这些警告"约束引用项目在当前配置中关闭。在当前配置中关闭此约束。"我试图找到任何不正确的约束,但如果我禁用任何约束,我会立即得到错误。另一个用户建议我应该记录约束,但我知道如何做的唯一方法是手动。具有类似配置的另一个场景无误地工作。
导致问题的代码是:
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乘169.它没有保持固定宽度。这是由于约束错误还是此代码中的错误?
答案 0 :(得分:0)
如果您将UILabel用于静态文本,只需将preferredMaxLayoutWidth设置为等于其宽度即可。然后自动布局将正常运行,因为intrinsicContentSize将限制为此宽度,它将自动计算正确的高度。
答案 1 :(得分:0)
我修改了视图以确认其行为(在我提交此问题后),它开始正常工作。我完全不知道是什么导致这个工作除了我删除了我添加的高度约束以强制高度,而我试图找到问题的解决方案。