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

abb*_*ood 6 objective-c ios nslayoutconstraint

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

[button1(==button2)]
Run Code Online (Sandbox Code Playgroud)

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

[button1(==button2+10)]
Run Code Online (Sandbox Code Playgroud)

[button1(==(button2+10))]
Run Code Online (Sandbox Code Playgroud)

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

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

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

想法?

PS以防万一你好奇我为什么要坚持使用可视化格式语言(而不是像其他方式那样做这个答案..或者使用包装库 ...查看代码示例)

Dru*_*erB 4

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

NSLayoutConstraint *c;
c = [NSLayoutConstraint constraintWithItem:button1 
                                 attribute:NSLayoutAttributeWidth 
                                 relatedBy:NSLayoutRelationEqual
                                    toItem:button2 
                                 attribute:NSLayoutAttributeWidth
                                multiplier:1.0 
                                  constant:10.0];
Run Code Online (Sandbox Code Playgroud)