2014-12-10 2 views
0

, например: У меня было создавать ограничения с помощью constraintsWithVisualFormatКак изменить ограничение, созданное ограничениямиWithualFormat?

[v1 addConstraints: 
    [NSLayoutConstraint 
     constraintsWithVisualFormat:@"V:|[v2(10)]|" 
     options:0 metrics:nil views:vs]]; 

но когда я решил изменить высоту V1 на V: | [v2 (10)] - 100- |, потому что constraintsWithVisualFormat возвращает массив ограничений, и Я не знаю, какое ограничение для массива - это тот, который мне нужно изменить, как я должен это делать? Не используя ограничения в VisualFormat?

ответ

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]; 
+0

Хорошо, вы имеете в виду воссоздать ограничения и добавить их снова, то, что я делал, это выбор использования addconstraint для ограничения будет изменен ~~ оба не выглядят хорошо -_- – ximmyxiao

+0

Хорошо. От 'constraintsWithVisualFormat: options: metrics: views:' documentation: _ Ограничения возвращаются в том же порядке, в котором они были указаны в строке визуального формата. Таким образом, вы можете получить доступ к единственному ограничению по индексу и изменить его. –

+0

это приятно ~ спасибо ~ – ximmyxiao

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 
     } 
    } 

не требуется ссылкой ограничений массива. , но у вас есть ссылка на представление, с какими ограничениями изменения вида.

Смежные вопросы