iOS - 以编程方式更改约束关系
iOS - changing constraint relation programmatically
以编程方式在 ios 中给出以下约束:
IBOutlet NSLayoutConstraint *myConstraint;
此约束在 interfacebuilder 中链接到以下详细信息:
如何以编程方式更改关系属性。我试图查找名为 setRelation 的方法,但我没有看到它。
根据 documentation,relation
是只读的。
我想你需要做的是设置
self.myConstraint.active = NO;
然后以编程方式创建一个新的 NSLayoutConstraint
:
+ constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
并在此过程中复制您要保留的值,并替换关系。
然后 add it to the view hierarchy 在适当的地方。
你可以这样做:
[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:self.yellowView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.redView
attribute:NSLayoutAttributeWidth
multiplier:0.75
constant:0.0]];
以编程方式在 ios 中给出以下约束:
IBOutlet NSLayoutConstraint *myConstraint;
此约束在 interfacebuilder 中链接到以下详细信息:
如何以编程方式更改关系属性。我试图查找名为 setRelation 的方法,但我没有看到它。
根据 documentation,relation
是只读的。
我想你需要做的是设置
self.myConstraint.active = NO;
然后以编程方式创建一个新的 NSLayoutConstraint
:
+ constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
并在此过程中复制您要保留的值,并替换关系。
然后 add it to the view hierarchy 在适当的地方。
你可以这样做:
[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:self.yellowView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.redView
attribute:NSLayoutAttributeWidth
multiplier:0.75
constant:0.0]];