我想设置一个约束,以编程方式给UIButton一个固定(恒定)的宽度.我知道我可以用constraintsWithVisualFormat实现这一点,但我一直在用constraintWithItem来实现代码中的所有约束.出于好奇/一致性的考虑,我想知道是否有任何方法可以用constraintWithItem实现这一点.
我想设置一个约束,以编程方式给UIButton一个固定(恒定)的宽度.我知道我可以用constraintsWithVisualFormat实现这一点,但我一直在用constraintWithItem来实现代码中的所有约束.出于好奇/一致性的考虑,我想知道是否有任何方法可以用constraintWithItem实现这一点.
找到了我的解决方案.只需将另一个对象设置为nil,将另一个属性设置为nsLayoutAttribute(这是我没有想到的),并将常量参数用于固定宽度:
[self addConstraint:[NSLayoutConstraint constraintWithItem:myButton
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:200]];
编辑:由于这个答案似乎仍然获得了相当多的观点,我想我应该添加Swift语法:
self.addConstraint(NSLayoutConstraint(
item: myButton,
attribute: .width,
relatedBy: .equal,
toItem: nil,
attribute: .notAnAttribute,
multiplier: 1.0,
constant: 200))