iOS: 如何使用 AutoLayout 将一个视图的中心与另一个视图的底部对齐

iOS: How to Align The Center of a View With The Bottom of Another View With AutoLayout

我想让头部imageView的中心和蓝色title imageView的底部保持对齐。

如何使用自动布局来实现?

屏幕4.0英寸 屏幕4.7英寸

首先,我会放置背景图片,然后在按住 SHIFT 的同时手动拖动它,直到尺寸合适,然后点击 |o|查看屏幕右下角的图标我会取消选中边距选项并执行左 0、上 0、右 0 然后底部应该是一个更大的数字(应该为你自动生成)

现在放置第二个 UIImage...放置它并根据您的喜好调整大小...现在在同一个图标上 |o|点击它并给它一个高度和宽度...添加约束...现在转到左边的倒数第二个(它就像两个堆叠的矩形)..点击它并点击“水平在容器中......现在点击较小的图像并按住控制键并拖动到较大的图像并松开...点击垂直间距...

最后....最右边的图标看起来像|o|但是有一个三角形...选择其中一张图像时...点击底部 "updtate frames"

你必须对你的图像而不是你的视图应用自动布局约束。 获取更多详情 https://www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints

有很多方法可以做到这一点。我只展示其中一种方法。

好的,让我们一步一步来。

步骤 1

首先,为了将椭圆形图像的中心与矩形图像的底部对齐,我们需要将矩形视图嵌入另一个视图中,我们可以将其命名为 Container View.

此容器视图将具有 ff 属性:

  • t运行透明背景色
  • 宽度等于屏幕宽度
  • 高度将是矩形视图高度的两倍(稍后你
    会知道为什么的)。

对于容器视图的约束:

  • leading 等于 super view 的leading
  • top space到超级view是0
  • 在超级视图中水平居中。
  • 自己设置纵横比

完成后,约束将如下所示。

步骤 2

现在对于矩形图像视图,约束为:

  • 行距等于容器视图的行距
  • 顶部space到容器视图是0
  • 尾随等于容器视图的尾随。
  • 设置椭圆图像视图的纵横比

    • 通过设置椭圆图像视图的纵横比。此矩形视图的大小变化将与椭圆形视图的大小变化成正比。

它将看起来像这样:

步骤 3

这次椭圆视图的约束:

  • 在容器视图中水平居中
  • 在容器视图中也垂直居中
  • 自己设置宽高比

    • 设置纵横比为self,保证当矩形视图尺寸扩大时,椭圆视图尺寸变化不会造成变形。

这将是结果:

步骤 4

有一个非常重要的观点要补充。此视图将确保矩形视图始终是容器视图大小的一半,以便椭圆形视图的中心始终与矩形视图的底部对齐。因此,我们将要添加的这个视图称为虚拟视图。

虚拟视图将具有 ff 属性:

  • t运行透明背景色
  • 宽度和高度值只能为 1

虚拟视图的限制:

  • 在容器视图中垂直居中
  • 在容器视图中水平居中
  • 宽度和高度是固定的。
  • 为矩形视图分配垂直间距

应该这样做:

好了,按照上面的步骤就可以达到效果了。

这将是约束的概述:

希望对您有所帮助。 :)

证明这是可行的!

我运行它在模拟器中...:D

iPhone 4:

iPhone 5:

iPhone 6:

iPhone 6 加上:

这可能对您有所帮助。完全基于 AutoLayout,不需要额外的视图。

  • 首先对封面图片的高宽和位置进行一些限制。 (蓝一)

它是总高的0.4,宽度等于宽度,你可以看到它的约束。

  • 然后我固定头像(绿色)图像的高度和宽度,使其在宽度上水平居中。

然后选择封面图和头像,让它们对齐底边。

现在变成这样了。

  • 最后一步,选择'Align Bottom to Cover Image',常量为头像高度的一半。完成!

这是我目前找到的最简单的方法。

第 1 步:创建您的视图,如下所示。

第 2 步:为所有三个边设置背景视图约束。

第 3 步:设置您自己的比例。因为,你提到你不知道身高。

第 4 步:Select 您的中心视图并根据需要添加宽度和高度限制。

第五步:在superview中设置center view为水平居中,如下图

第 6 步:现在 select 背景视图和中心视图。将对齐约束设置为 "Vertical centers".

第 7 步:现在,您可以看到一个带有错误常量警告的约束,如下所示。 Select那个约束

第 8 步:在连接检查器中,select 将 "second item" 更改为 "bottom"

第 9 步:就是这样。如果出现警告,请更新您的约束。您可以签入任何屏幕尺寸的不同模拟器。

您不需要任何超级视图或新兄弟来完成此操作。使任何视图居中并将其保持为另一个视图的 bottom/top 的简单方法。

如果您有 2 个视图(固定视图和浮动视图)并且浮动高度固定,您可以将 vertical-space 从浮动设置为固定,并设置 -height/2 值。 示例:如果您的按钮高度为 20,则将 vertical-space 设置为 fixed-view,值为 -10