我一直在使用
UIGraphicsBeginImageContextWithOptions()
,我注意到该方法中的最后一个字段是 scalefactor
。苹果文档说,如果我想将其设置为 0.0,那么它将使用设备主屏幕的默认比例因子。有没有办法通过属性或方法获取默认比例因子?
Swift 3+ 版本:
UIScreen.main.scale
斯威夫特5+
let scale = UIScreen.main.scale
print("scale is:\(scale)")
Swift5+ / macOS Big Sur:
let backingScaleFactor = NSScreen.main?.backingScaleFactor
斯威夫特 5.9
let screenScale: CGFloat = view.window?.windowScene?.screen.scale
希望对你有帮助
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;