如何在Swift中以编程方式创建约束?

时间:2015-01-31 14:15:19

标签: ios swift constraints

我正在尝试使用以下代码设置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?

2 个答案:

答案 0 :(得分:26)

你很亲密。约束只应该有一个项目,因为它与另一个项目无关。

constraintButtonPlayWidth = NSLayoutConstraint (item: buttonPlay,
    attribute: NSLayoutAttribute.Width,
    relatedBy: NSLayoutRelation.Equal,
    toItem: nil,
    attribute: NSLayoutAttribute.NotAnAttribute,
    multiplier: 1,
    constant: 100)
self.view.addConstraint(constraintButtonPlayWidth)

答案 1 :(得分:1)

toItem应设置为nil,以便您的代码如下所示:

constraintButtonPlayWidth = NSLayoutConstraint (item: buttonPlay,
    attribute: NSLayoutAttribute.Width,
    relatedBy: NSLayoutRelation.Equal,
    toItem: nil,
    attribute: NSLayoutAttribute.Width,
    multiplier: 1,
    constant: 100)
self.view.addConstraint(constraintButtonPlayWidth)