2014-11-21 66 views
5

假设iPhone 6 Plus显示处于标准模式(设置>显示>查看>标准),键盘扩展的UIInputViewControllerinputView返回不同的宽度取决于主机应用是否针对iPhone 6/iPhone 6 Plus屏幕进行了优化。如何检测主机应用程序处于iPhone 6 Plus的缩放模式还是普通模式?

例如,内置的Notes应用程序返回宽度为414点(未缩放),其中LINE应用程序(从v4.7.2开始)返回320点(缩放)。

键盘扩展如何确定主机应用程序窗口的宽度(例如,在viewDidLoad之前,在viewDidiLoad之前)?

回答

0

您可以使用定义的宏:

#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].nativeScale女巫的意志带给您2.6f如果正常,2.8f如果在iPhone 6加

放大
相关问题