如何以编程方式将乘数设置为约束?
CGFloat multiplier;
如何将此乘数添加到约束中?
答案 0 :(得分:2)
创建约束后无法更改乘数,因为它的readonly属性,你可以更新常量(你可以尝试自己计算常量),但如果不是这样,你真的需要改变乘数,我`建议使用更新的乘数创建新约束并删除旧约束
NSLayoutConstraint *oldConstraint = YOUR_CURRENT_CONSTRAINT;
NSLayoutConstraint *newConstraint = [NSLayoutConstraint constraintWithItem:oldConstraint.firstItem
attribute:oldConstraint.firstAttribute
relatedBy:oldConstraint.relation
toItem:oldConstraint.secondItem
attribute:oldConstraint.secondAttribute
multiplier:NEW_MULTIPLIER
constant:oldConstraint.constant];
[YOUR_VIEW_THAT_HOLDS_CONSTRAINT removeConstraint:oldConstraint];
[YOUR_VIEW_THAT_HOLDS_CONSTRAINT addConstraint:newConstraint];
答案 1 :(得分:1)
乘数是只读的,显然你只能在创建约束时设置它。 但您可以随时设置常量值,您可以将其用于大多数用途。
constraint.constant = 50;
如果您在IB中创建了约束,则必须为其创建一个IBOutlet。
答案 2 :(得分:0)
{{1}}属性是只读的。您必须删除旧的NSLayoutConstraint并将其替换为新的NSLayoutConstraint以进行修改。
但是,由于您知道要更改乘数,因此您可以通过在需要更改(通常更少的代码)时自己乘以常量来更改常量。