iPhones(从5到6 Plus)与尺寸类别的比例布局

我已经通过了一些关于大小类的教程,但我仍然无法弄清楚一件事情。

iPhone 5,iPhone 6和iPhone 6 Plus具有完全相同的屏幕宽高比,所以我希望他们使用相同的内容布局。 我说的意思是与屏幕的宽度和高度成正比。

但! 我无法find一种方法使其与所有iPhone的成比例!

只有几个限制确实支持比例:“长宽比”,“相同宽度”+“乘数”,“相同高度”+“乘数”

约束,例如前沿,水平中心在容器中,所有引脚约束以逻辑点的绝对值进行操作,并且所有iPhone的屏幕在逻辑点上具有不同的大小; 从而我无法在所有的iPhone上实现相同的画面。

更新

我添加了一张图片来解释我想要达到的目的:

在这里输入图像说明

如果你想使用更大的屏幕,那么你可以简单地不包含启动文件或启动4.7“和5.5”设备的图像,他们将只使用放大的4“布局。

但请不要这样做。 屏幕可能具有相同的纵横比,但尺寸并不相同,对待它们会造成不良的用户体验。

我有一个类似的问题,并通过testing图像的屏幕高度(或宽度)来解决它,例如:

 //iphone 5 if UIScreen.main.bounds.size.height == 568.0 { // your code here } 

iphone屏幕高度如下:

iphone 5 = 568.0

iPhone 6 / 6s / 7 = 667.0

iphone 6/7 plus = 736.0

检查我为你制作的这个示例项目 。

假设你有一个button,然后按照我下面提到的步骤,使button的高度,宽度和位置与父视图成比例。

  1. 给你的button长宽比。
  2. 给宽度等于父视图的宽度。
  3. 在容器中水平添加约束中心,在容器中垂直居中添加。
  4. select您的button,然后去检查大小,并设置乘数的宽度(如0.3或0.4等)。
  5. 然后设置“alignment中心X到…”的倍数(如果你想让你的button左边的中心,然后设置乘数低于1像0.8,0.7,0.5等等如果你想让你的button在右边的中心然后像1.2那样设置乘数值大于1等)。
  6. 在步骤中设置“将中心alignment到…”的乘数值

它的全部完成..只要运行并检查。

希望这会帮助你。