Ios 访问内容缩放因子/乘数?
我正在使用iPhone 6 Plus,并使用以下工具获取UIView的边界:Ios 访问内容缩放因子/乘数?,ios,view,swift,Ios,View,Swift,我正在使用iPhone 6 Plus,并使用以下工具获取UIView的边界: let viewBounds = view.bounds // GIVES 736 x 414 (Points), WHICH IS RIGHT 是否有任何方法可以获得用于将点转换为像素的乘数(即@3x)。我希望我可以使用: let scaleFactor = view.contentScaleFactor // GIVES 1 但正如你所见,它似乎总是返回1。我知道我可以使用preferredMode.size或
let viewBounds = view.bounds // GIVES 736 x 414 (Points), WHICH IS RIGHT
是否有任何方法可以获得用于将点转换为像素的乘数(即@3x)。我希望我可以使用:
let scaleFactor = view.contentScaleFactor // GIVES 1
但正如你所见,它似乎总是返回1。我知道我可以使用preferredMode.size
或nativeBounds
直接获取屏幕大小,但我确信以前也有办法访问乘数
// WHERE SCALE FACTOR WOULD BE 3
let yRes = viewBounds.height * scaleFactor // 736 x 3 = 2208
let xRes = viewBounds.width * scaleFactor // 414 x 3 = 1242
文档介绍了contentScaleFactor
属性:
(…)对于系统视图,即使在高分辨率屏幕上,此属性的值也可能为1.0
因此,这不是你想要的
可以从主屏幕读取实际比例因子,这将为您提供
1.0
、2.0
甚至3.0
:
let scale: CGFloat = UIScreen.main.scale // Swift3, Swift4.x
let scale: CGFloat = UIScreen.mainScreen().scale // Swift 2.x
或
您可以在.swift 3.0中阅读更多关于缩放
属性的信息
let scale = UIScreen.main.scale
UIScreen.mainScreen().scale
表示什么?这应该给你正确的比例因子。太好了,谢谢你,我可以发誓那是在UIView上,难怪我找不到它。非常感谢,先生。
let scale = UIScreen.main.scale