Ios 如何使用自动调整大小修复iPhone X上的按钮大小

Ios 如何使用自动调整大小修复iPhone X上的按钮大小,ios,swift,Ios,Swift,首先,我要为这个问题提前道歉,因为它不需要编码,只要它是必需的解决方案 我正在通过约束并使用swift 4自动调整大小。在不使用约束条件自动调整大小时,我遇到了一个小问题,因为这会弄乱按钮的位置和大小。请参见下面我的UI按钮的堆叠方式 iPhone8 Plus、iPhone8和iPhoneSE看起来都一样,按钮排列完美 iPhone X-图像显示为拉伸状态 iphone 4S-图像显示为向内压缩 我所做的只是对每个按钮集进行自动调整大小,如下所示 有没有办法让iPhoneX保持相同的图像

首先,我要为这个问题提前道歉,因为它不需要编码,只要它是必需的解决方案

我正在通过约束并使用swift 4自动调整大小。在不使用约束条件自动调整大小时,我遇到了一个小问题,因为这会弄乱按钮的位置和大小。请参见下面我的UI按钮的堆叠方式

iPhone8 Plus、iPhone8和iPhoneSE看起来都一样,按钮排列完美

iPhone X-图像显示为拉伸状态

iphone 4S-图像显示为向内压缩

我所做的只是对每个按钮集进行自动调整大小,如下所示

有没有办法让iPhoneX保持相同的图像纵横比


谢谢

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


编辑

使用autolayout有很多方法可以做到这一点。下面我列举了我为实现它而执行的每个步骤

  • 创建一个视图,将其重命名为contentView。此视图将保留三个按钮。水平居中并设置底部约束:

  • 为contentView相对于其superview创建高度和宽度约束,并将其更改为比例约束:

  • 在contentView中创建一个视图,将其重命名为redView并将其背景色更改为红色。将其固定到顶部、左侧和右侧。最后,添加与contentView相关的比例高度约束(0.5):

  • 在contentView中创建一个视图,将其重命名为blueView,并将其背景色更改为蓝色。将其固定到底部右侧。此外,在该视图和红色视图之间创建顶部空间约束(值16):
  • 会有一些情节提要错误,别担心,我们会很快修复它们。


  • 在contentView内创建视图,将其重命名为greenView,并将其背景色更改为绿色。与blueView类似,将其固定到底部左侧。另外,在greenView和blueView(值32)之间添加一个尾随空间约束:

  • 最后,在greenView和blueView之间创建等高等宽约束。


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

    如注释中所述,您应该使用约束来实现所需的结果。使用
    纵横比
    比例
    约束,您应该能够相应地缩放按钮


    编辑

    使用autolayout有很多方法可以做到这一点。下面我列举了我为实现它而执行的每个步骤

  • 创建一个视图,将其重命名为contentView。此视图将保留三个按钮。水平居中并设置底部约束:

  • 为contentView相对于其superview创建高度和宽度约束,并将其更改为比例约束:

  • 在contentView中创建一个视图,将其重命名为redView并将其背景色更改为红色。将其固定到顶部、左侧和右侧。最后,添加与contentView相关的比例高度约束(0.5):

  • 在contentView中创建一个视图,将其重命名为blueView,并将其背景色更改为蓝色。将其固定到底部右侧。此外,在该视图和红色视图之间创建顶部空间约束(值16):
  • 会有一些情节提要错误,别担心,我们会很快修复它们。


  • 在contentView内创建视图,将其重命名为greenView,并将其背景色更改为绿色。与blueView类似,将其固定到底部左侧。另外,在greenView和blueView(值32)之间添加一个尾随空间约束:

  • 最后,在greenView和blueView之间创建等高等宽约束。


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

    使用约束,而不是自动调整遮罩的大小。。。也许?你想让按钮保持其大小和纵横比,还是只保持其纵横比?@LGP例如,如果iPhone 8上的按钮A大小为100 x 50,然后,在iPhone上,X尺寸应该保持与200x100相同的比例,以便适合手机屏幕size@holex我花了2天时间在youtube上观看了关于约束的视频,但大多数是按钮的垂直或水平布局,而不是两者的混合,我了解纵横比,但它们是否应该在较大/较小的屏幕上增长/收缩?使用约束,而不是自动调整遮罩的大小。。。也许?你想让按钮保持其大小和纵横比,还是只保持其纵横比?@LGP例如,如果iPhone 8上的按钮A大小为100 x 50,然后,在iPhone上,X尺寸应该保持与200x100相同的比例,以便适合手机屏幕size@holex我花了2天时间在youtube上观看了关于约束的视频,但大多数是按钮的垂直或水平布局,而不是两者的混合,我了解纵横比,但它们是否应该在更大/更小的屏幕上增长/收缩呢