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
我有一个像图片一样的布局。这是 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