【发布时间】:2014-11-10 15:45:16
【问题描述】:
我知道有一些这样的问题,但我没有解决方案。我正在尝试了解它是否是 iPhone 6。
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
当我尝试这个时,即使在 iPhone 6 中它返回 IS_IPHONE_5 也是真的。如果我尝试 native.scale iphone 5 和 6 也返回 2,只有 iphone 6 plus 返回 3。所以如果从高处看是 iphone 6,我无法得到它或从规模。
NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
它们在 iPhone 5 和 iPhone 6 中都返回相同的结果。那么如何检测呢? 请帮忙。
【问题讨论】:
-
为什么会检测到运行应用程序的 iPhone?没必要,你可以使用 AutoResizemask 或 auotlayout 来正确修复你的 UI。
-
您到底想完成什么检测用户的设备。也许您的应用程序采用了错误的方法。
-
为什么 SO 社区的手总是这么重?我已将您投票支持为零...我不确定您为什么要检测 iPhone 版本,但仅仅因为我无法理解您可能想要的原因并不意味着我应该正确地声明你不应该永远这样做并拍打你的手腕。人们所说的是有效的。上面的链接问题可能会引导您找到您正在寻找的答案。
-
@dave 你投反对票或反对票都很好。我正在处理我没有写的旧项目。代码完全一团糟,如果我能检测到 iphone 型号,我可以轻松更改背景视图的大小。没有xib或故事板。一切都以编程方式创建。
标签: ios objective-c iphone mainscreen