iPhone アプリでは、デバイス上でアプリを実行しているときに、アプリが実行されているデバイスの画面解像度を検出するにはどうすればよいでしょうか?
ベストアンサー1
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におけるポイントとピクセルの違いについては、次の記事で詳しく読むことができます。ここ。
編集:(Swift版)
let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)