如何通过包含另一个按钮的宽度加上常量来编写NSConstraint可视化格式语言

时间:2013-11-16 14:46:32

标签: ios objective-c nslayoutconstraint

在关于NSLayoutConstraint的可视格式语言的docs中,有一个例子,你指定button1的宽度等于button2:

[button1(==button2)]

我的问题:有没有办法让button1等于按钮2的+ +常量..我试过了:

[button1(==button2+10)]

[button1(==(button2+10))]

并且都失败了......这是一个错误示例:

A predicate on a view's thickness must end with ')' and the view must end with ']' 
V:[tagWrapper(==tagButton+10)]
                         ^'

(我显然知道你可以通过做一个NSStringWithFormat并简单填写有问题的变量来做到这一点..但这看起来太乱了)

想法?

P.S。万一你好奇我为什么要坚持使用视觉格式语言(而不是像this回答那样做其他方式...或者在那里使用wrapper libraries ..查看{ {3}}代码示例)

1 个答案:

答案 0 :(得分:4)

无法使用可视格式语言指定某些约束。您可以使用这样的简单约束:

NSLayoutConstraint *c;
c = [NSLayoutConstraint constraintWithItem:button1 
                                 attribute:NSLayoutAttributeWidth 
                                 relatedBy:NSLayoutRelationEqual
                                    toItem:button2 
                                 attribute:NSLayoutAttributeWidth
                                multiplier:1.0 
                                  constant:10.0];