iOS 8.x使用[UIScreen mainScreen]检测iPhone 5s的替代方法.bounds.size.height == 568.0

时间:2014-11-11 08:13:58

标签: objective-c ios8 iphone-5 bounds mainscreen

在iOS 8之前的iOS版本中,要检查设备是否为iPhone 5 / iPhone 5s,检查[UIScreen mainScreen] .bounds.size.height == 568.0就足够了。但是在iOS 8.x以后,此检查可能会失败,因为边界现在取决于方向。我需要一个解决方案来识别iPhone 5s,6和6+设备,而无需检查iOS版本。

2 个答案:

答案 0 :(得分:1)

您可以查看是否

[UIScreen mainScreen].bounds.size.height == 568.0   

[UIScreen mainScreen].scale识别iPhone 6和6+

请注意,如果应用程序正在处理"缩放"这将无效。模式。
在这种情况下,iPhone 6和6+将提供比例2.0

答案 1 :(得分:0)

我能够使用以下宏检测设备。如果要识别设备,对视图执行某些更新(例如更新方向更改框架),这将非常有用。如果您确实需要设备型号/品牌,请改用此链接(ios iphone get device model and make?)。

#define IS_IPHONE       ((int)(MAX([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)) == 480)
#define IS_IPHONE5      ((int)(MAX([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)) == 568)
#define IS_IPHONE6      ((int)(MAX([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)) == 667)
#define IS_IPHONE6PLUS  ((int)(MAX([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)) == 736)