以编程方式在ios中给出以下约束:
IBOutlet NSLayoutConstraint *myConstraint;
这个约束在interfacebuilder中链接到以下细节:
如何以编程方式更改关系属性。我试着找一个名为setRelation的方法,但是我没有看到它。
答案 0 :(得分:11)
根据documentation,relation
是只读的。
我怀疑,您需要做的是设置
self.myConstraint.active = NO;
然后使用以下方式以编程方式创建新的NSLayoutConstraint
:
+ constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
在此过程中复制您想要保留的值,并替换关系。
然后add it to the view hierarchy。{/ p>
答案 1 :(得分:2)
你可以这样做:
[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:self.yellowView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.redView
attribute:NSLayoutAttributeWidth
multiplier:0.75
constant:0.0]];