我想知道这个乘数和常量在constraintWithItem中代表什么,我们在使用编码来设置自动布局时使用它?

码:

[NSLayoutConstraint constraintWithItem:centerView                                                       attribute:NSLayoutAttributeWidth                                                        relatedBy:NSLayoutRelationEqual                                                          toItem:self.view
    attribute:NSLayoutAttributeWidth
    multiplier:0.5
    constant:0]

最佳答案

一般公式如下:

newValue = oldValue * multiplier + constant

在这种情况下,新值将是您为视图指定的属性的计算值,该值作为第一个参数传递,旧值是指定属性的第二个视图的值。如果传递NSLayoutAttributeNone,则multiplier参数将无效,仅考虑常量(因此,可以为某些视图指定宽度或高度,例如但不仅限于此)。

Good reference here

如果我的解释令人困惑,那么从苹果公司的参考书中,您可能会在下面找到特别解释(准确)的部分:


  约束表示形式为view1.attr1乘数×view2.attr2 + c的线性方程。如果要表达的约束没有第二个视图和属性,请使用nil和NSLayoutAttributeNotAnAttribute。


作为现实生活中的示例,该方法可用于以下情况:


我希望这个视图比这个视图宽两倍
我希望该视图的属性具有该值
还有很多 :)

10-04 21:14