Xcode:如何使3x3图像的网格占据宽度和高度的1/3?

时间:2015-11-28 19:32:46

标签: xcode

我试图用9个按钮制作视图,所有按钮都有1/3的屏幕高度和1/3的屏幕宽度。我正在使用故事板。这就是我现在所拥有的:

enter image description here

正如你所看到的,他们并没有处于正确的位置。是否有一种简单的方法可以让所有按钮都具有合适的尺寸?

2 个答案:

答案 0 :(得分:1)

您唯一需要的是为所有按钮设置正确的约束。

这些是:

  1. 所有按钮的常量为0的前导约束
  2. 所有按钮的常量0的最高约束
  3. 所有按钮的尾随约束为常数0
  4. 所有按钮的常量为0的底部约束
  5. 所有按钮的等宽度约束
  6. 所有按钮的相等高度限制
  7. 如何:

    1. 选择所有按钮
    2. 添加前导,顶部,宽度和高度限制
    3. like this

      1. 选择左下角和下方按钮
      2. 按步骤2添加右侧和底部约束
      3. 确保在添加1-4

        的约束时关闭Constrain to margins

答案 1 :(得分:1)

@medvedNick有正确的想法,但如果您定位到iOS 9或更高版本,则可以使用UIStackView来避免管理相当多的自动布局限制。

只需制作一个垂直堆栈视图,其中包含三个水平堆栈视图(反之亦然),每个视图都有三个按钮,并将所有堆栈视图的分布设置为Fill Equally。您仍然需要一组约束 - 一个用于使外部堆栈视图填充屏幕,另一个用于使内部水平堆栈视图填充外部垂直堆栈视图的宽度。

在运行时,这会产生与设置自己的布局约束大致相同的效果(因为UIStackView创建了约束来管理其子视图)...但它使设计时的约束设置更简单。例如,如果您希望整个按钮网格仅填充屏幕的一半,则只需更改设置外部堆栈视图宽度(或高度)的约束。

(顺便说一句,这个例子并不能充分利用UIStackView所能做的所有事情。如果你的观点不是全部排在网格中,如果它们改变了大小,或者如果您在运行时添加/删除视图,UIStackView可以提供更多帮助。)