0

我正在使用比例< 1.1> 1.9区分低分辨率和视网膜版本:

if (([[UIScreen mainScreen] scale] < 1.1) {}
if (([[UIScreen mainScreen] scale] > 1.9) {}

我的问题:是否所有 iPhone 都具有< 1.1低分辨率刻度,所有 iPad 都具有< 1.1低分辨率刻度?

所有具有比例视网膜的 iPhone> 1.9和所有具有比例视网膜的 iPad > 1.9

似乎是这样,但我只想确定有这么多设备。

4

1 回答 1

0

只要您可以依靠 iOS 4.0 或更高版本,您的建议就可以正常工作。然而,正如其他人所指出的,您不需要检查分数比例。从UIScreen 文档

默认逻辑坐标空间使用点进行测量,其中一个点大约等于 1/160 英寸。如果设备的屏幕具有相当相似的像素密度,则比例因子通常设置为 1.0,以便一个点映射到一个像素。但是,具有显着不同像素密度的屏幕可能会将此属性设置为更高的值。

对于所有当前设备scale,将返回 1.0 或 2.0。

一个需要注意的警告在这个 StackOverflow 答案中讨论了如何检测 Retina Display。那就是原来的 iPad 运行的是 iOS 3.2,没有这个scale属性。如果您的目标是那么远,则需要考虑这一点,并假设您没有视网膜显示器,如果UIScreen不响应scale.

于 2012-08-23T04:14:37.117 回答