1. ホーム
  2. ios

[解決済み] in iPhone App 端末の画面解像度を検出する方法

2022-06-07 04:23:14

質問

iPhoneアプリで デバイス上でアプリを実行中に アプリが実行されているデバイスの画面解像度を検出する方法を教えてください。

どのように解決するのですか?

CGRect screenBounds = [[UIScreen mainScreen] bounds];

これは画面全体の解像度をポイントで表示するため、iPhone の場合は通常 320x480 となります。iPhone4 の画面サイズがはるかに大きいにもかかわらず、iOS は 640x960 の代わりに 320x480 を返します。これは、古いアプリケーションが壊れることが主な原因です。

CGFloat screenScale = [[UIScreen mainScreen] scale];

これは画面の縮尺を返します。Retina ディスプレイを搭載していないすべてのデバイスでは 1.0f が返され、Retina ディスプレイ デバイスでは 2.0f が、iPhone 6 Plus (Retina HD) では 3.0f が返されます。

iOS デバイスの画面のピクセル幅と高さを取得したい場合、1 つの簡単なことを行うだけです。

CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);

画面のスケールを掛けることで、実際のピクセル解像度を得ることができます。

iOS のポイントとピクセルの違いについては、次の記事を参照してください。 を参照してください。 .

EDITです。 (Swift対応版)

let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)