如何在 Swift 中以编程方式创建约束?
How do I create constraints programmatically in Swift?
我正在尝试使用以下代码设置 UIButton
的宽度:
constraintButtonPlayWidth = NSLayoutConstraint(item: buttonPlay,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.Equal,
toItem: self.view,
attribute: NSLayoutAttribute.Width,
multiplier: 1,
constant: 100)
self.view.addConstraint(constraintButtonPlayWidth)
但是按钮被拉得太长了;可能是因为 toItem: self.view
。我尝试修改约束的常量,但这并没有改变任何东西。
如何正确设置此约束,使其实际宽度为 100?
你很接近。约束应该只有一个项目,因为它与另一个项目无关。
constraintButtonPlayWidth = NSLayoutConstraint (item: buttonPlay,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 1,
constant: 100)
self.view.addConstraint(constraintButtonPlayWidth)
我正在尝试使用以下代码设置 UIButton
的宽度:
constraintButtonPlayWidth = NSLayoutConstraint(item: buttonPlay,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.Equal,
toItem: self.view,
attribute: NSLayoutAttribute.Width,
multiplier: 1,
constant: 100)
self.view.addConstraint(constraintButtonPlayWidth)
但是按钮被拉得太长了;可能是因为 toItem: self.view
。我尝试修改约束的常量,但这并没有改变任何东西。
如何正确设置此约束,使其实际宽度为 100?
你很接近。约束应该只有一个项目,因为它与另一个项目无关。
constraintButtonPlayWidth = NSLayoutConstraint (item: buttonPlay,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 1,
constant: 100)
self.view.addConstraint(constraintButtonPlayWidth)