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



在关于NSLayoutConstraint视觉格式语言的文档中,有一个示例,您指定 button1 的宽度等于 button2:

[button1(==button2)]

我的问题:有没有办法使按钮 1 等于按钮 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并简单地填写有问题的变量来做到这一点......但这看起来太混乱了)

想法?

附言以防万一你好奇为什么我想坚持使用视觉格式语言(而不是像这个答案这样的其他方法......或者在那里使用包装库......看看这个代码示例)

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

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

最新更新