使用自动布局将屏幕分成 1/3 和 2/3 视图

Dividing screen in to 1/3 and 2/3 views using autolayout

有没有办法按百分比(不是等百分比)划分屏幕 我需要将屏幕分成两部分 1/3 和 2/3。 我知道如何拆分成相等的部分,但不知道如何拆分成不相等的部分。

谢谢

在您的视图和超级视图之间建立 "Equal widths" 约束,一个视图的乘数 2:3 另一个视图的乘数 1:3。见图片。 "Equal height"如果你想在另一个方向拆分。

使用情节提要和自动布局非常简单:我想您需要垂直分割屏幕(但水平分割也是一样的技巧)。

所以使用单个视图控制器,拖放两个视图并将它们设置为附加到顶部和底部。对于 视图 1:

查看 2:

现在您需要为主视图中的视图 1 和视图 2 设置约束 等高。之后您可以编辑这些约束设置值(在 0 和 1 之间)作为乘数。双击约束:

并设置你想要的比例值(技巧是将这些约束的总和保持为 1,或者只在此处输入“2:3”,在另一个视图中输入“1:3”):

这是结果:

希望这是您所需要的,如果您需要更多详细信息,请告诉我!

步骤:

  1. viewcontroller 上拖动两个 UIView objects
  2. 将左视图固定到 superview
  3. 的左侧、顶部和底部
  4. superview 的右侧、顶部和底部的右视图。
  5. 固定两个视图(左视图和右视图)之间的水平间距。确保常量为零 since/if 你不需要间距。
  6. Select left-view 和 superview 等宽设置(耐心等待)。现在转到尺寸检查器并在选择左视图的情况下同样编辑宽度约束。现在将乘数设置为 0.33(现在设置了 % 宽度)。

查看结果:

您可以像已接受的答案一样使用 Equal Widths 约束,但是,如果您要约束的不是两个尺寸而是一个点到另一个尺寸,例如约束一个视图的 horizontal center 到屏幕上的 1/3 或 2/3 点,那么它将不起作用,因为你不能将 space 中的点限制为一个大小。

但是如果你知道 view1,你的 xib 将是屏幕的全宽,那么,例如 horizontal center 点,你可以将其约束到该视图的 trailing 边缘,如果您希望视图以屏幕宽度的 1/3 或 2/3 为中心,则分别将乘数设置为 1:32:3 .