在纵向方向上,我想水平布置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)。并且有没有更好的解决方案来处理这种情况而不会丢失像素。
答案 0 :(得分:2)
SDK在布局视图时会考虑比例因素。
这就是为什么你会看到" integral" @ 2x设备上的小数值为.5的帧,或@ 3x设备上的小数值为.33和.66。
换句话说,即使您限制了与设备无关的点,布局系统也会努力与设备相关的像素对齐。
最好的方法是尝试布局并查看其工作原理,因为您可能会发现SDK已经预见到了这种情况。否则,您将尝试解决非问题。
在iOS 9中,Apple使UIStackView
更加简单。您不需要为视图添加任何约束,因为堆栈视图会(水平地)为您布置它们。