如何获取设备的比例因子?

问题描述 投票:0回答:6

我一直在使用

UIGraphicsBeginImageContextWithOptions()
,我注意到该方法中的最后一个字段是
scalefactor
。苹果文档说,如果我想将其设置为 0.0,那么它将使用设备主屏幕的默认比例因子。有没有办法通过属性或方法获取默认比例因子?

objective-c ios uiimage
6个回答
117
投票

设备的比例因子是

UIScreen
的属性。您可以通过以下方式获取:

[UIScreen mainScreen].scale;

文档在这里


41
投票

Swift 3+ 版本:

UIScreen.main.scale

4
投票

斯威夫特5+

let scale = UIScreen.main.scale
print("scale is:\(scale)")

3
投票

Swift5+ / macOS Big Sur:

let backingScaleFactor = NSScreen.main?.backingScaleFactor

0
投票

斯威夫特 5.9

let screenScale: CGFloat = view.window?.windowScene?.screen.scale

-2
投票

希望对你有帮助

 CGSize textcontent =CGSizeMake(width, height);
UIGraphicsBeginImageContext(textcontent);
if ([UIScreen instancesRespondToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0f)
{
    UIGraphicsBeginImageContextWithOptions(textcontent, YES, 1.0f);
}
else
{
    UIGraphicsBeginImageContext(textcontent);
}
 [view.layer renderInContext:UIGraphicsGetCurrentContext()];
 viewImage = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 return viewImage;
© www.soinside.com 2019 - 2024. All rights reserved.