5

假设 iPhone 6 Plus 显示屏处于标准模式(设置 > 显示 > 视图 > 标准),UIInputViewController inputView键盘扩展返回不同的宽度取决于主机应用程序是否针对 iPhone 6/iPhone 6 Plus 屏幕进行了优化。

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

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

4

1 回答 1

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)

或者如果正常,如果在 iPhone 6 plus 上放大,[UIScreen mainScreen].nativeScale女巫会给你2.6f2.8f

于 2015-09-18T13:38:14.013 回答