0

XCode 4.5.1 と iOS シミュレータ (Retina 4 インチ) を使用しています。

私は一年前に作ったプロジェクトを持っています。そこで、プロジェクトを新しい解像度に移行したいと思います。

私の問題は次のとおりです。

コードをプロジェクトに統合して、自分の解像度を検出します。

CGRect screenBounds = [[UIScreen mainScreen] bounds];

しかし、screenBounds の値を NSLog に出力した後、幅 = 320、高さ = 480 になりましたが、1136 × 640 が表示されると予想していました。

同じ問題がありますか?

4

2 に答える 2

1

4inch シミュレーターを使用していますか? [[UIScreen mainScreen] bounds]画面の境界をピクセルではなくポイントで返します。したがって、4 インチの iPhone では、CGRect返される値は320x568になります。

したがって、次のように呼び出すと[[UIScreen mainScreen] bounds]:

  • <= iPhone 3GS: 320x480
  • iPhone 4 & iPhone 4S: 320x480
  • iPhone5: 320×568

注:Default-568h@2x.pngファイルを追加しておらず、アプリがレターボックスで実行されている場合、使用したメソッドは iPhone 4 & 4S の値を返します。

ヒント: iPhone 5 を使用しているか、それ以外を使用しているかを判断するには、次のコードが役立ちます。

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

if( IS_IPHONE_5 )
{
    // iPhone 5
}
else
{
   // Other
}
于 2012-10-20T20:22:52.790 に答える
1

アプリを新しい背の高い画面に適応させるには、最初に起動イメージを Default-568h@2x.png に変更します。そのサイズは 1136x640 (HxW) である必要があります。はい、新しい画面サイズでデフォルトの画像を使用することは、アプリが新しい iPhone 5 の画面全体を使用できるようにするための鍵です。

また、さらにいくつかの手順を実行する必要があります。

Xibs/ビューが自動レイアウトを使用してサイズを変更していることを確認してください。ビューのサイズを変更するには、スプリングとストラットを使用します。これがアプリにとって十分でない場合は、xib/ストーリーボードを 1 つの特定の画面サイズに合わせて設計し、プログラムで別の画面サイズに再配置します。

于 2012-10-20T20:22:58.683 に答える