iPhone 6 / 6+ 键盘扩展分辨率缩放

iPhone 6 / 6+ resolution scaling for keyboard extension

我在 iPhone 6 和 6+ 设备上正确缩放图像时遇到问题。 我正在开发自定义键盘扩展,我使用图像来呈现按键。

在正常模式下,所有设备上都正常。在缩放模式下,根据这个问题,我似乎需要添加更多图像集:Xcode 6 device-specific asset catalog。这很丑陋,但到目前为止它似乎运行良好。

令我头疼的是,某些应用程序似乎 运行 的分辨率甚至更低。例如,LinkedIn 应用程序。甚至 "zoomed mode picture" 看起来也太大了,溢出了屏幕。它看起来 运行ning 更接近 iPhone 5 分辨率 - 960px (320*3) 图像在 6+ 设备上渲染效果还不错。

但是 - 当我记录 UIImageView 的宽度时,它在缩放模式和 LinkedIn 应用程序中返回 375 点。 UIScreen的scale属性好像也一直都是3

我是这样记录的:

log.debug("Height: \(self.keyboardView.bounds.height)")
log.debug("Width: \(self.keyboardView.bounds.width)")
log.debug("Screen Width: \(UIScreen.mainScreen().bounds.width)")
log.debug("Screen scale: \(UIScreen.mainScreen().scale)")
log.debug("Screen native scale: \(UIScreen.mainScreen().nativeScale)")

这就是我得到的:

正常

LinkedIn.app

Height: 216.0
Width: 375.0
Screen Width: 414.0
Screen scale: 3.0
Screen native scale: 2.60869565217391

MobileNotes.app

Height: 216.0
Width: 375.0
Screen Width: 414.0
Screen scale: 3.0
Screen native scale: 2.60869565217391

放大

手机笔记

Height: 216.0
Width: 375.0
Screen Width: 375.0
Screen scale: 3.0
Screen native scale: 2.88

领英

Height: 216.0
Width: 375.0
Screen Width: 375.0
Screen scale: 3.0
Screen native scale: 2.88

我是否还需要为这些旧应用程序提供一组额外的图像 - 如果需要,我如何检测此类应用程序目前正在 运行ning?

检测这个的方法似乎在

override func updateViewConstraints()

您可以在哪里查看

的值
self.view.frame.size.width

在旧版应用中为 320。