确定应用程序是否在iPhone 6键盘上以“缩放”模式运行?

时间:2014-11-30 18:10:55

标签: ios iphone keyboard ios8 iphone-6

我正在尝试创建自定义iOS 8键盘。我正在使用Interface Builder来安排键盘布局。我有两个NIB文件,一个用于iPhone 6,另一个用于iPhone 5.

某些应用程序已针对iPhone 6“缩放”。对于这些应用程序,我想加载iPhone 5 NIB(iPhone 6 NIB离开屏幕)。

有没有办法确定当前运行的应用是否在“缩放”模式下运行?

不幸的是,检查UIScreen mainScreen的属性并没有让我区分原生iPhone 6应用程序与缩放iPhone 6应用程序。

2 个答案:

答案 0 :(得分:4)

缩放的应用[UIScreen mainScreen].scale[UIScreen mainScreen].nativeScale不一样。

答案 1 :(得分:0)

如果您的应用专为iPhone 5设计,则在iPhone 6上运行您的应用时,scalenativeScale属性将匹配,因为这两款手机的本机比例因子均为2.0倍。

相反,您可以使用[[UIScreen mainScreen] nativeBounds]查看屏幕边界(以像素为单位)。例如,在iPhone 6上运行为iPhone 5设计的应用程序时,您将看到iPhone 5(640x1136)的界限:

Native Bounds: {{0, 0}, {640, 1136}}

但是当运行专为iPhone 6设计的应用程序时,你将获得iPhone 6(750x1334)的界限:

Native Bounds: {{0, 0}, {750, 1334}}

您可以使用CGRect功能记录nativeBounds媒体所返回的NSStringFromCGRect()

此外,还有一个很棒的指南来指导PaintCode上的iOS屏幕尺寸:http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions