我正在尝试创建自定义iOS 8键盘。我正在使用Interface Builder来安排键盘布局。我有两个NIB文件,一个用于iPhone 6,另一个用于iPhone 5.
某些应用程序已针对iPhone 6“缩放”。对于这些应用程序,我想加载iPhone 5 NIB(iPhone 6 NIB离开屏幕)。
有没有办法确定当前运行的应用是否在“缩放”模式下运行?
不幸的是,检查UIScreen mainScreen的属性并没有让我区分原生iPhone 6应用程序与缩放iPhone 6应用程序。
答案 0 :(得分:4)
缩放的应用[UIScreen mainScreen].scale
和[UIScreen mainScreen].nativeScale
不一样。
答案 1 :(得分:0)
如果您的应用专为iPhone 5设计,则在iPhone 6上运行您的应用时,scale
和nativeScale
属性将匹配,因为这两款手机的本机比例因子均为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。