ConstraintWithItem中的Multipler和Constant

时间:2015-08-18 13:03:16

标签: ios objective-c

我想知道这个乘数和常数在constraintWithItem中的含义,我们在使用编码设置自动布局时会使用它吗?

代码:

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

1 个答案:

答案 0 :(得分:1)

一般等式如下:

newValue = oldValue * multiplier + constant

在这种情况下,新值将是您为视图指定的属性的计算值,该属性作为第一个参数传递,旧值是指定属性的第二个视图的值。如果你传递NSLayoutAttributeNone那么乘数参数将没有效果只会考虑常量(所以这样你可以为某些视图指定宽度或高度,例如但不仅仅是)。

Good reference here

如果我的解释令人困惑,那么从Apple的参考文献中你可能会发现下面部分特别具有说明性(并且精确):

  

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

作为一个真实的例子,该方法可用于以下情况:

  1. 我希望这个视图比这个视图宽两倍
  2. 我希望此视图的属性具有该值
  3. 更多:)