我正在尝试开发Mac OS X应用程序,这要求我根据用户的选择更改主窗口中显示的视图的约束,可能下拉菜单将提供给用户以更改中包含的视图的布局。
应用程序包含多个自定义视图,因此我不希望在代码本身中定义所有对象,而是希望使用Interface Builder定义对象,并根据用户的响应使用NSLayoutConstraint API以编程方式应用/修改约束。是否可以使用NSLayoutConstraint API以编程方式在使用Interface Builder定义的对象上定义约束?如果是,那么如何?
答案 0 :(得分:0)
简单示例(使用Swift):
// connect a button to an outlet
@IBOutlet weak var myButton: NSButton!
// then, in your code, set the Width constraint to 300
myButton.widthAnchor.constraint(equalToConstant: 300).isActive = true
// connect an Interface Builder defined constraint to an outlet
@IBOutlet weak var theTopConstraint: NSLayoutConstraint!
// then, in your code, change it to 12
theTopConstraint.constant = 12
您还可以.addContraints()
.removeConstraints()
.updateConstraints()
等等等。