iPhoneアプリでデバイスの画面解像度を検出する方法
あなたの質問に対するJman012の答え:
CGRect screenBounds = [[UIScreen mainScreen] bounds];
これにより、画面全体の解像度がポイント単位で表示されるため、iPhoneの場合は通常320x480になります。iPhone4の画面サイズははるかに大きいですが、iOSは640x960ではなく320x480を返します。これは主に、古いアプリケーションが壊れていることが原因です。
CGFloat screenScale = [[UIScreen mainScreen] scale];
これにより、画面のスケールがわかります。Retinaディスプレイを備えていないすべてのiPhoneおよびiPodTouchの場合、1.0fが返されますが、Retinaディスプレイデバイスは2.0fを返します。ここで、iOSデバイス画面のピクセル幅と高さを取得したい場合は、1つの簡単なことを行う必要があります。
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
画面のスケールを掛けると、実際のピクセル解像度が得られます。このコードの有用性は、iPadがRetinaディスプレイを取得した場合、スケールを使用すると常に実際のピクセル解像度が得られるなど、Appleの今後の製品で機能することです。
http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html#//apple_ref/doc/uid/TP40010156-CH14-SW7