62

私は使用UIGraphicsBeginImageContextWithOptions()していて、そのメソッドの最後のフィールドがscalefactor. また、アップルのドキュメントによると、0.0に設定したい場合は、デバイスのメイン画面のデフォルトの倍率が使用されます。プロパティまたはメソッドを介してそのデフォルトの倍率を取得する方法はありますか?

4

5 に答える 5

115

デバイスのスケール係数はのプロパティですUIScreen。次の方法で入手できます。

[UIScreen mainScreen].scale;

ここのドキュメント

于 2012-12-24T07:38:24.270 に答える
36

Swift 3+ バージョン:

UIScreen.main.scale
于 2015-10-24T18:26:02.037 に答える
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 に答える