如何使用autolayout将UIView分成相等的部分?

时间:2014-04-03 08:33:47

标签: ios objective-c uiview autolayout

我正在努力寻找一个逻辑规则或约束,这样我就可以将UIView的内容分成相等的部分。

更具体一点,想象一下初始宽度为300pt的UIView。然后让我们放置三个子视图并进行设置,使每个子视图的宽度实际为100,而origin.x将为0,100和200.一个子视图将构成superview的三分之一。 如果我调整超级视图的大小,则所有三个子视图将在水平方向上变宽,但它们将保持相同的大小。

任何帮助?

3 个答案:

答案 0 :(得分:15)

  1. 放置您的视图。
  2. 放置并放置三个子视图,每个子视图占宽度的三分之一。
  3. 按住cmd并单击每个子视图,选择所有三个子视图。
  4. Go Editor> Pin>宽度相等
  5. 确保为子视图x和y位置设置约束。在您的情况下,您将最左侧子视图的前导空间固定为superview,并将最右侧子视图的尾部空间固定为superview(编辑器> Pin>前导/尾随空间到superview)和垂直间距,具体取决于您的情况下。

答案 1 :(得分:3)

相等的宽度/高度限制将为您完成此任务。

在可视格式中,约束条件为:

|[view1][view2(==view1)][view3(==view1)]|

左侧固定在超视图的左侧,右侧固定在右侧,中间固定在两个外侧,所有三个固定在相同的宽度上。

答案 2 :(得分:0)

在iOS 9中,Apple引入了StackView。在UIViewController中拖动一个Vertical StackView。从StackView内部的对象库中拖动3个UIView。 选择StackView,然后在属性检查器中将“分布”设置为“均等填充”,并将间距设置为5或任何您想要的值。更改所有三个视图的颜色,您将看到它们平均分为三部分。

enter image description here

enter image description here

结果:

enter image description here