Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 访问内容缩放因子/乘数?_Ios_View_Swift - Fatal编程技术网

Ios 访问内容缩放因子/乘数?

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或

我正在使用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
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