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

Posted

技术标签:

【中文标题】如何在 XCode 11 中更改图像的位置以进行纵向或水平对齐【英文标题】:How to change position of image for portrait or horizontal alignment in XCode 11 【发布时间】:2020-07-30 02:20:59 【问题描述】:

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

我遵循了很多指南和pointson here,但它们都与旧版本的 XCode 相关,而这些旧版本似乎具有 XCode 11 所没有的东西 - such as selecting constant - 或者只是不工作。

我完全困惑这应该如何工作,因为当我添加“Vary for traits”时,它会将移动应用于所有设备。我确定我一定是在想这个,它一定更简单不是吗?

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

【问题讨论】:

你看过constraints吗? 【参考方案1】:

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

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

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

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

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

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

点击Vary for Traits,然后选择Height,因为我们从(wC hR)变成了(wC hC):

查看 Size Inspector 中的约束,然后选择 This Size Class

删除前导和比例高度约束:

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

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

请注意,我们有 2 个“灰显”(非活动)约束...如果您切换回“纵向查看”,这两个约束将变为“活动”,而这两个 (wC hC) 约束将显示为“非活动”。

由于应用程序可以在部分屏幕中运行(iPad 多任务处理),因此建议不要再考虑纵向和横向。而是根据大小类别/特征来考虑。

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

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

【讨论】:

以上是关于如何在 XCode 11 中更改图像的位置以进行纵向或水平对齐的主要内容,如果未能解决你的问题,请参考以下文章

如何在 java 中创建一些东西来根据纵横比调整图像的大小和位置? [关闭]

更改高度时保持图像纵横比

XCode:调整图像大小使用纵横比并向下移动图像下方的元素

以编程方式更改纵横比约束值

如何在 swift xcode 故事板中正确使用纵横比?

更改图像时 JCROP 重置纵横比