首页 > 解决方案 > 如何使用自动调整大小修复 iPhone X 上的按钮大小调整

问题描述

首先提前为问题道歉,因为它不需要编码,只有当它需要的解决方案时。

我正在通过约束并使用 swift 4 自动调整大小。我在不使用约束的情况下自动调整大小时遇到​​了一个小问题,因为这会弄乱按钮的位置和大小。请看下面我的 UI 按钮是如何堆叠的。

iPhone 8 Plus、iPhone 8、iPhone SE 看起来都一样,按钮对齐完美

在此处输入图像描述

iPhone X - 图像出现拉伸

在此处输入图像描述

iphone 4S - 图像向内压缩

在此处输入图像描述

我所做的只是为每个按钮设置自动调整大小,如下所示

在此处输入图像描述

有没有办法让 iPhone X 保持相同的图像纵横比?

谢谢

标签: iosswift

解决方案


如评论中所述,您应该使用约束来实现所需的结果。使用aspect-ratioproportional约束您应该能够相应地缩放按钮。


编辑

您可以通过多种方式使用自动布局来做到这一点。下面我列举了我为实现它而执行的每个步骤。

  1. 创建一个视图,将其重命名为 contentView。此视图将包含三个按钮。将其水平居中并设置底部约束:在此处输入图像描述

  1. 为 contentView创建与其父视图相关的高度宽度约束,并将它们更改为成比例在此处输入图像描述

  1. 在 contentView 中创建一个视图,将其重命名为 redView 并将其背景颜色更改为红色。将其固定在顶部左侧右侧。最后,添加与 contentView 相关的比例高度约束(0.5):在此处输入图像描述 在此处输入图像描述

  1. 在 contentView 中创建一个视图,将其重命名为 blueView 并将其背景颜色更改为蓝色。将其固定在底部右侧。此外,在此视图和 redView(值 16)之间创建一个顶部空间约束:在此处输入图像描述

会有一些故事板错误,别担心,我们会尽快修复它们。


  1. 在 contentView 中创建一个视图,将其重命名为 greenView 并将其背景颜色更改为绿色。与 blueView 类似,将其固定在底部左侧。此外,在 greenView 和 blueView 之间添加尾随空间约束(值 32):在此处输入图像描述

  1. 最后,在 greenView 和 blueView 之间 创建等高等宽约束。在此处输入图像描述

就是这样,现在您应该向每个视图添加按钮和/或图像并执行额外的逻辑以实现您想要的最终结果(添加圆角等)。


推荐阅读