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

How to measure and layout views based on different screen sizes

在纵向方向上,我想布局 4 个视图 horizontally.The 4 个视图相等 width.Here 是从 ios resolution 获取的每个 iPhone 宽度的详细信息。

iPhone 4/4s/5/5c/5s 's logic resolution width is 320

iPhone 6 's logic resolution width is 375

iPhone 6 plus 's logic resolution width is 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)。有没有更好的解决方案来处理这种情况而不会丢失像素。

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

这就是为什么您会在 @2x 设备上看到 "integral" 个分数值为 .5 的帧,或者在 @3x 设备上看到分数值为 .33 和 .66 的原因。

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

最好的办法是尝试一个布局,看看它是如何工作的,因为您可能会发现 SDK 已经预料到了这种情况。否则,您将尝试解决一个非问题。

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