我想以编程方式设置我的 UITextView 的高度以相应地适合内容。我已将 UITextView 的默认高度设置为遵循我设置的布局约束,但希望在用户触摸按钮时更改它。@IBOutlet weak var descriptionHeight: NSLayoutConstraint!我尝试使用 layoutIfNeeded() ,但它不会改变我的文本 View 的大小(因为大小是由布局约束保持的)。
我试图暂时禁用这样的约束:

print("before: \(descriptionTextView.frame)")
descriptionHeight.active = false

descriptionTextView.layoutIfNeeded()
print("after: \(descriptionTextView.frame)")

descriptionHeight.constant = descriptionTextView.frame.height
descriptionHeight.active = true
但是当停用它后访问 socket 时,它会引发异常:

似乎它正在正确计算大小:

为什么会发生这种情况?
有没有更好的方法来计算和设置我的 UITextView 的适当大小?

最佳答案

制作导出 strong :

@IBOutlet strong var descriptionHeight: NSLayoutConstraint!

编辑 :

似乎最新版本的 Xcode 将 socket 添加为:
@IBOutlet var descriptionHeight: NSLayoutConstraint!

正如@Dan 在评论中提到的那样。

10-08 16:59