我想以编程方式访问 firstAttribute约束属性。这样我就能找到一个约束是高度约束,宽度约束,topMargin约束等... 当我尝试时,
print(constraint.firstAttribute)
我得到了一般结果
“NSLayoutAttribute”
但我想要更具体的结果来根据 属性(height,width,topMargin等......) 类型来区别对待约束。
答案 0 :(得分:1)
您要查找的约束属性为firstAttribute
(或secondAttribute
)。但是,你真的没有必要“猜测”你正在看哪个约束 - 只需将约束存储为属性并相应地命名它们。
编辑:要知道您拥有哪种类型的属性,请切换它:
switch myConstraint.firstAttribute {
case .height:
// height constraint
case .leading:
// leading constraint
case .topMargin:
// top margin constraint
// etc
}
答案 1 :(得分:0)
解决方法是将约束存储为属性。您可以使用故事板或笔尖(就像按钮或标签)或代码中的插座来执行此操作。
这样,您不必深入视图以尝试找到约束。你只需要访问它......
buttonHeightConstraint.constant = 50
等等...
答案 2 :(得分:0)
对我而言 firstAttribute 根本不起作用,而且,它与iOS 9.0之前的版本不兼容
所以我最终通过为NSLayoutConstraint对象分配一个标识符来解决。然后,您可以迭代视图的约束并比较标识符以检索所需的约束。
yourConstraint.identifier = "yourString"
所以:
for tmpConst in self.view.constraints {
if tmpConst.identifier == "yourString" {
return tmpConst
}
}
将返回你的约束。