何时在iOS AutoLayout中使用Multiplier?

时间:2015-06-04 14:11:12

标签: ios objective-c xcode swift autolayout

自动布局约束可以定义为:

self.view.addConstraint(NSLayoutConstraint(item: label, 
       attribute: .Bottom, 
       relatedBy: .Equal, 
       toItem: self.view, 
       attribute: .Bottom, 
       multiplier: 1, 
       constant: 0))

我不明白使用multiplier的用例是什么。

何时在iOS AutoLayout中使用乘数?

3 个答案:

答案 0 :(得分:5)

我经常使用的一个用例是当我希望一个视图是另一个视图宽度的30%时。它看起来像这样:

self.view.addConstraint(NSLayoutConstraint(item: label, 
   attribute: .Width, 
   relatedBy: .Equal, 
   toItem: self.view, 
   attribute: .Width, 
   multiplier: 0.3, 
   constant: 0))

答案 1 :(得分:2)

如果你有两个观点。并且您的要求是一个视图总是其他视图的一半,或者可能是其他视图的10%,而不是使用乘数。

为前,

enter image description here

我希望这两个观点始终存在于这个命题中。

enter image description here

所以从一个视图拖放到另一个视图并选择相同的高度。

它显示两个视图不在同一高度的错误。

所以请选择身高enter image description here

现在你必须通过计算像(second_view_height / first_view_height)来改变乘数。并在乘数

中添加

enter image description here

这样你在故事板中使用

用于手动编码,您可以使用这种方式

self.view.addConstraint(NSLayoutConstraint(item: label, 
   attribute: .Width, 
   relatedBy: .Equal, 
   toItem: self.view, 
   attribute: .Width, 
   multiplier: 0.4869, 
   constant: 0))

答案 2 :(得分:0)

在Apple文档中:

  

自动布局计算第一项的属性,使其成为第二项属性和此乘数的乘积。除1以外的任何值都会创建比例约束。

请看一下这个链接:Auto Layout Multiplier