2015-05-16 12 views

Antwort

19

können Sie verwenden entweder [UIScreen mainScreen].nativeScale Hexe Willen gibt Ihnen 2.6f wenn normal, und 2.8f wenn auf dem iPhone 6 und gezoomt oder die definierten Makros:

#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) 
0

Ja, können Sie das tun: -

[UIScreen mainScreen].currentMode 

Standardmodus und Zoomed Modus zu erkennen.

Für detailliertere Informationen überprüfen Sie diese link.

0

Ich hatte das gleiche Problem, wenn ich Anwendung in 2 Arten von Geräten iPhone 6 (Standard-Modus) und iPhone 6 (Zoom-Modus) installieren, aber später versuche ich, die Höhe und Breite des iPhone beim Start zu fangen.

in Ihrer ViewController.h Klasse in viewDidLoad Methode versuchen, die Höhe und Breite in der Konsole zu überprüfen.

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

Wenn Sie dies überprüfen, können Sie den Unterschied zwischen Standard- und Zoom-Modus feststellen.

Von der Vizlx Antwort können Sie auch überprüfen, wie unten, was ich versuchte.

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

Danke.