62

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

4

5 回答 5

115

设备的比例因子是 的属性UIScreen。您可以通过以下方式获得它:

[UIScreen mainScreen].scale;

文档在这里

于 2012-12-24T07:38:24.270 回答
36

斯威夫特 3+ 版本:

UIScreen.main.scale
于 2015-10-24T18:26:02.037 回答
3

Swift5+ / macOS 大苏尔:

let backingScaleFactor = NSScreen.main?.backingScaleFactor
于 2021-02-27T07:49:16.120 回答
2

斯威夫特 5+

let scale = UIScreen.main.scale
print("scale is:\(scale)")
于 2020-12-22T09:19:51.257 回答
-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;
于 2012-12-24T07:25:45.287 回答