0

Interface Builder で定義したレイアウト制約のあるビューがあります。それらは一時的に非アクティブ化できないため、次のように呼び出して選択的に削除することにしました。

[view removeConstraint:myConstraint];

ただし、その後、制約はまだ内部に存在しますview.constraints。さらに、プログラムで制約を追加したいと思います (繰り返しますが、それらを (非) アクティブにすることはできません)。

- (NSLayoutConstraint*) addHeightConstraint:(int)height forView:(UIView*)view {
    NSString* v = [NSString stringWithFormat:@"V:[view(==%i)]", height];
    NSArray* cs = [NSLayoutConstraint constraintsWithVisualFormat:v options:0 metrics:nil views:NSDictionaryOfVariableBindings(view)];
    NSLayoutConstraint* c = [cs objectAtIndex:0];
    c.priority = 1000;
    BOOL wasAdded = [view.constraints containsObject:c];
    return c;
}

NOメソッドを呼び出すと、 variableの値が返されますwasAdded。これは、まったく変更されていないユーザー インターフェイスにも反映されています。

結論として、プログラムで制約を追加することも、ストーリーボードに追加された制約を削除することもできません。私は何を間違っていますか?

4

1 に答える 1