iOS 中心屏幕自动布局 3 个块

iOS auto layout 3 blocks in the center screen

我有一个像图片一样的布局。这是 4s 的设计,当我 运行 在 7 或 7s+ 时,我想要 3 个白色块作为 4s 的中心,并增加尺寸以匹配新屏幕。有什么帮助吗?我使用 Xcode 8.1。谢谢

4s


7 或 7s+(失败)


7或7s+(希望如此)

将您的 3 个块放置到具有所需间距的水平堆栈视图 (UIStackView) 中,然后将堆栈视图居中放入您的内容视图中。

编辑:

如果您需要支持 iOS 早于 iOS 9 的版本,则您不能使用堆栈视图。那样的话你的工作就复杂多了。

我所做的是将我想要居中的视图放在另一个视图中,我在屏幕上水平居中。我将其称为容器视图。

我将你想要的视图space统一称为“白色视图”。

我添加约束以将我的白色视图设置为固定宽度,并在每个白色视图之间插入“spacer views”。我在每个 spacer 视图上创建一个约束,将其宽度设置为等于所有其他 spacer 视图的宽度,并将每个视图的前导和尾随 space 锁定到最接近的邻居。 (如果最外层的 spacer 视图被锁定到它们的父视图。

如果您将 spacer 视图设置为固定宽度,并使容器视图的高度与白色视图的高度相匹配,请将其前缘与最左侧 spacer 视图,并将其后缘连接到最右侧 spacer 视图的后缘,然后容器视图大小自动包含所有白色视图和 spacer 视图,并且保持居中,因此其中的视图保持居中。

编辑#2:

查看此线程,它说明了 spacer 方法和另一种使用比例居中约束的技术:

Evenly space multiple views within a container view