例如:我使用constraintsWithVisualFormat
创建了约束[v1 addConstraints:
[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|[v2(10)]|"
options:0 metrics:nil views:vs]];
但当我决定将V1的高度改为V:| [v2(10)] - 100- |时,因为constraintsWithVisualFormat返回一个约束数组,我不知道数组的哪个约束是我的修改,我应该怎么做?不使用constraintsWithVisualFormat?
答案 0 :(得分:1)
保留对约束数组的引用。
NSArray *constraints = [NSLayoutConstraint
constraintsWithVisualFormat:@"V:|[v2(10)]|"
options:0 metrics:nil views:vs];
[v1 addConstraints:constraints];
[v1 removeConstraints:constraints];
constraints = [NSLayoutConstraint
constraintsWithVisualFormat:@"V:|[v2(10)]-100-|"
options:0 metrics:nil views:vs];
[v1 addConstraints:constraints];
答案 1 :(得分:1)
它可能对您有用
NSArray * arrConstarint= v1.constraints;
for (NSLayoutConstraint * constraint in arrConstarint)
{
if (constraint.firstAttribute==NSLayoutAttributeHeight && constraint.firstItem == v1)
{
// change height of view
// if not find proper constraint then add constraint.secondAttribute etc in condition
constraint.constant=100;//set your height
}
}
不需要引用约束数组。 但是您有一个视图参考视图更改约束。