所以我的第一个想法是使它成为类的实例属性,然后在一个方法中设置它并在另一个方法中访问它。这并没有像我希望的那样真的很好用,所以我想知道如何为约束设置一个标识符,以便我可以在我班级的任何地方访问它?我没有使用故事板。所以我不能使用outlet并在GUI中设置标识符。
iconOne.heightAnchor.constraint(equalToConstant: 25.0).isActive = true
我希望能够访问上面的约束,以便稍后我可以更新常量,最好的方法是什么?如果不是标识符,请随时与我联系。
答案 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!
[...]