如何在整个班级中访问约束,而不仅仅是在我设置的位置?

时间:2017-07-06 14:52:42

标签: ios swift constraints

所以我的第一个想法是使它成为类的实例属性,然后在一个方法中设置它并在另一个方法中访问它。这并没有像我希望的那样真的很好用,所以我想知道如何为约束设置一个标识符,以便我可以在我班级的任何地方访问它?我没有使用故事板。所以我不能使用outlet并在GUI中设置标识符。

iconOne.heightAnchor.constraint(equalToConstant: 25.0).isActive = true

我希望能够访问上面的约束,以便稍后我可以更新常量,最好的方法是什么?如果不是标识符,请随时与我联系。

2 个答案:

答案 0 :(得分:3)

iconOne.heightAnchor.constraint(equalToConstant: 25.0)将返回NSLayoutConstraint。将其存储在变量中。

class TestViewController: UIViewController {

var iconOne: UIImageView!

var heightConstraint: NSLayoutConstraint!

override func viewDidLoad() {
    super.viewDidLoad()

    heightConstraint = iconOne.heightAnchor.constraint(equalToConstant: 25.0)
    heightConstraint.isActive = true

}

}

或通过IB制作出口。

class TestViewController: UIViewController {

@IBOutlet weak var iconOne: UIImageView!
@IBOutlet weak var heightConstraint: NSLayoutConstraint!


}

答案 1 :(得分:1)

执行此操作的最佳方法绝对是类级变量。在类中声明它但不在函数内部,如下所示:

class SomeClass {
    var someConstraint: NSLayoutConstraint!
    [...]