-1

これらの黒いサンドボックスボックスを回避するために、アプリストアですでにリリースされている完全に機能するアプリをiOS6.0とiPhone5に移植したいと思います。

Default-568h@2x.png画像を追加して、iphone 5の解像度をサポートできるようにしましたが、シミュレーターにブラックボックスが表示されなくなりました。

しかし、画面の解像度([UIScreen mainScreen])をチェックしてiPhone 5を検出すると、常に解像度320x568が得られます。私は何が間違っているのですか?

4

1 に答える 1

2

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

于 2013-01-03T15:05:29.603 に答える