检查设备上的iPhone设备版本是否失败

时间:2015-10-14 07:50:33

标签: ios objective-c iphone

我正在尝试检测我的应用运行在哪个iPhone上。 我在stackoverflow找到了这个:

#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)

#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))

#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)

但这对我不起作用。当我有一个标准模式的iPhone6(没有缩放),它说它是一个iPhone5。 我也测试了

[UIScreen mainScreen].bounds.size.width

但每次都会返回320。

在模拟器中,它工作得很完美,但在设备上却失败了。

有人可以帮我找出使用的iPhone吗?

最好的问候

1 个答案:

答案 0 :(得分:2)

为什么不使用“@media only screen and (max-width: 600px){ .block{ position: fixed; top: 50px; left: 0; margin-left: 20px; margin-right: 20px; right:0; width:initial; } } ”而不依赖于屏幕尺寸?

Here's a tutorial that might help you out

如果“[[UIDevice curentDevice] model]”对你来说不够详细,那么还有“[[UIDevice currentDevice] model]”,其中教程展示了如何获得“漂亮的字符串”(或模型名称的精美版本)出来的。

There's also Open Source available that you can drop in to determine the Device display name