如何在 XCode 11 中更改图像的位置以进行纵向或水平对齐

How to change position of image for portrait or horizontal alignment in XCode 11

我正在尝试拍摄一张图像,从水平方向查看时填充屏幕的右侧,到纵向查看时的顶部四分之一。

我遵循了很多指南,但 points on here, but they all related to older version of XCode that seemingly have things XCode 11 don't - - 或者根本不起作用。

我完全不知道这应该如何工作,因为当我添加 "Vary for traits" 时它会将移动应用到所有设备。我确定我一定是想多了,它一定更简单不是吗?

我正在使用 XCode 11.4 iOS 13.x> 以上支持。

首先添加一个新的视图控制器 - 使用 iPhone 8 纵向布局 (wC hR) :

添加一个新的 UIImageView 并将其放置在顶部大约 1/4 的高度(无论多近):

添加顶部/前导/尾随约束:

添加比例高度约束,在 0.25:

现在将视图更改为横向 (wC hC):

它将看起来像这样(如预期的那样):

点击Vary for Traits,然后select Height 因为我们从(wC hR) 到 (wC hC):

查看 Size Inspector 中的约束,select This Size Class:

删除行距和比例高度约束:

并添加底部约束和比例宽度 (0.5) 约束:

然后点击Done Varying。现在看起来像这样:

请注意,我们有 2 个 "grayed-out"(未激活)约束...如果您切换回以纵向查看,这两个约束将变为 "active" 和两个(wC hC) 约束将显示为 "inactive".

因为应用程序可以 运行 在部分屏幕中(iPad 多任务处理),建议不要再考虑纵向和横向。相反,考虑大小 类 / 特征。

如果您的设计允许,您还可以添加 (wR hR) 特征变体。

现在,如果您真的想要纵向与横向,则需要使用一些代码。为 Tall/Narrow 布局定义一组约束,为 Wide/Short 布局定义另一组约束。然后实施 viewWillTransition(to size: ... 并根据 "to size" width > heightheight > width.

激活/停用适当的约束