2015-05-16 10 views

Odpowiedz

19

Można użyć [UIScreen mainScreen].nativeScale czarownica wola daje 2.6f jeśli normalne i 2.8f jeśli powiększony na iPhone'a 6 Plus lub zdefiniowane makra:

#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

Tak, można to zrobić: -

[UIScreen mainScreen].currentMode 

wykryć tryb standardowy i tryb powiększony.

Aby uzyskać bardziej szczegółowe informacje, sprawdź to link.

0

Miałem do czynienia z tym samym problemem, gdy instaluję aplikację w 2 typach urządzeń iPhone 6 (tryb standardowy) i iPhone 6 (tryb Zoom), ale później próbuję złapać wysokość i szerokość iPhone'a podczas jego uruchamiania.

w swojej klasie w metodzie viewDidLoad spróbuj sprawdzić wysokość i szerokość w konsoli.

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

Zaznaczając to, można uzyskać różnicę między trybem Standard i Zoom.

Odpowiedź od Vizllx można również sprawdzić poniżej, co próbowałem.

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

Dzięki.

Powiązane problemy