如何根据不同的屏幕尺寸测量和布局视图

时间:2015-07-02 14:01:24

标签: ios screen-resolution

在纵向方向上,我想水平布置4个视图.4个视图的宽度相等。这里是从ios resolution获取的每个iPhone宽度的详细信息。

  

iPhone 4 / 4s / 5 / 5c / 5s的逻辑分辨率宽度为320

     

iPhone 6的逻辑分辨率宽度为375

     

iPhone 6 plus的逻辑分辨率宽度为414。

所以每个视图的宽度都是:

  

iPhone 4 / 4s / 5 / 5c:320/4 = 80(pts)

     

iPhone 6:375/4 = 93.75(pts)

     

iPhone 6 plus:414/4 = 103.5(pts)

我的问题是iOS布局系统如何处理这些小数(93.75& 103.5)。并且有没有更好的解决方案来处理这种情况而不会丢失像素。

1 个答案:

答案 0 :(得分:2)

SDK在布局视图时会考虑比例因素。

这就是为什么你会看到" integral" @ 2x设备上的小数值为.5的帧,或@ 3x设备上的小数值为.33和.66。

换句话说,即使您限制了与设备无关的点,布局系统也会努力与设备相关的像素对齐。

最好的方法是尝试布局并查看其工作原理,因为您可能会发现SDK已经预见到了这种情况。否则,您将尝试解决非问题。

在iOS 9中,Apple使UIStackView更加简单。您不需要为视图添加任何约束,因为堆栈视图会(水平地)为您布置它们。