0

XCodeで新しいiPhoneViewベースのプロジェクトを作成し、生成されたxibを名前で確認しましたmyAppViewController.xib。そのxibでは、生成されたビューのフレームは次のようになります。{ x = 160, y = 230, w = 320, h = 460 }このビューは、ステータスバーを除く画面全体に表示されることになっています。ビューのフレームは次のようになると思います。{ x = 0, y = 0, w = 240, y = 300 }古いiPhoneの場合と{ x = 0, y = 0, w = 480, h = 600 }、Retinaディスプレイの場合です。しかし、私は上記の奇妙な値を取得します。ここで何が起こっているのか説明してもらえますか?他のプロジェクトの描画コードの一部が台無しになっています(描画する領域はビューのフレームに基づいています)。

4

3 に答える 3

3

Retinaディスプレイは、実際にはビューのポイントサイズを大きくしません。Appleがそれを導入したとき、それはポイントピクセル
の間に違いをもたらしました。Retinaディスプレイのピクセル数は多くなりますが、ポイント数は同じです。 UIKitに関連するコード内のすべては通常ポイントであるため、そこで変更する必要はありません。100x100のビューは引き続きそのサイズになります。

私はあなたの質問を本当に理解していませんが、フレーム値はboundsプロパティとcenterプロパティによって変更できます...したがって、それらを変更していないかどうかを確認してください。

于 2011-02-17T19:38:43.253 に答える
2

フレーム長方形はそれ自体です:

CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)

画面の幅は幅320ピクセル、高さ480ピクセルです。ステータスバーは20pxです。したがって、必要なrectは次のとおりです。

CGRectMake(0,0,320,460)

網膜の有無に関係なく、デバイスは必要に応じて変換されます。

于 2011-02-17T19:39:29.540 に答える
0

座標はピクセルではなくポイント単位です。画面の解像度に関係なく、座標系は320X480です。

于 2011-02-17T19:45:20.350 に答える