如何检测iPhone 6和6 Plus查看模式编程

有没有什么办法来确定视图模式(在设置>显示和亮度)编程?

在标准模式和缩放模式下,许多应用程序devise的行为不同。

请参考图片:

在这里输入图像说明

任何帮助,将不胜感激。 🙂

你可以使用[UIScreen mainScreen].nativeScale巫婆会给你2.6f如果正常, 2.8f如果放大iPhone 6 plus,或定义的macros:

 #define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) #define IS_IPHONE_5 (IS_IPHONE && ([[UIScreen mainScreen] bounds].size.height == 568.0) && ((IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale == [UIScreen mainScreen].scale) || !IS_OS_8_OR_LATER)) #define IS_STANDARD_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale == [UIScreen mainScreen].scale) #define IS_ZOOMED_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale > [UIScreen mainScreen].scale) #define IS_STANDARD_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0) #define IS_ZOOMED_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale < [UIScreen mainScreen].scale) 

是的,你可以这么做:-

 [UIScreen mainScreen].currentMode 

检测标准模式和缩放模式。

有关更详细的信息,请查看此链接 。

当我在两种types的设备iPhone 6(标准模式)和iPhone 6(缩放模式)中安装应用程序时,我遇到了同样的问题,但后来我尝试在启动时捕获iPhone的高度和宽度。

在你的ViewController.h类的viewDidLoad方法中试着检查控制台的高度和宽度。

 NSLog(@"width %f, height %f",self.view.frame.size.width,self.view.frame.size.height); 

通过检查,你可以得到标准模式和缩放模式的区别。

Vizllx的答案你也可以检查下面,我试过了。

 UIScreen *MainScreen = [UIScreen mainScreen]; UIScreenMode *ScreenMode = [MainScreen currentMode]; CGSize Size = [ScreenMode size]; NSLog(@"width %f, height %f",Size.width,Size.height); 

谢谢。