2011-01-02 6 views
1

私のiPhoneプロジェクトでは、コードを使用してGUIを作成します。私の考えを超えた1つの質問は、これを書いて正しいですか:UIViewControllersビューフレームの適切な初期化

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)]; 
self.view = myView; 
[myView release]; 

これはiPhone 4で正しく動作しますか?私はこれを書くときに物理的なピクセルを設定していないので、iPhone 4では自動的に640と920にスケーリングされますか?または私は間違っています。

メインの「ビュー」に「私が所属するコンテナを埋める」と伝える方法があるのだろうか?このコードは今のところiPad上で正しく表示されないためですずっとにappriciated

ヘルプ:) iPhoneで

+0

シミュレータでiPhone 4をテストすることができます。私はかなりview.contentScaleFactor = [UIScreen mainScreen] .scaleFactorまたはそれに似たものを設定する必要があることをかなり確信しています。 –

+0

@Justin Meiners、それは間違っています。私の答えを見てください。 – jer

+0

@jer oh okありがとう –

答えて

1

iOSでは、ビュー座標系はピクセルではなくポイントで定義されます。あなたがUIKitで作業する場合、iPhoneとiPod touchの解像度は320x480 ポイントで、iPadの解像度は768x1024ポイントです。 OpenGLを使用している場合は、ピクセル単位で実際の解像度にアクセスできますが、UIKitを使用する場合はポイントのみを使用する必要があります。

initWithFrame:あなたのビューがスーパーを「埋める」持っている、あなたが何かを行うことができます

self.view.superview.frameをし、ビューは常にスーパーを満たすことを確認するために自動サイズ変更マスクを設定します。)

希望します。 Moszi

+0

ありがとうMoszi :) – LuckyLuke

2

あなたは、X、YおよびCGRectの幅と高さの位置のために与える値は、ポイントないピクセルです。ポイントは倍率に比例します。つまり、既知のポイントの幅と高さが指定されている場合、幅と高さに倍率を掛けて、倍率で画面上のピクセル数を決定できます。しかし、これはあなたにとって重要ではありません。 iOSでは、フレームと境界については、ピクセルではなくポイントを扱います。

+0

+1次回の表示サイズをどう扱うか興味深いです。 (私は間違いがあるのが大好きですが、いつでもiPadの解像度をすばやく倍増させることはできません):-) –

+0

ありがとうございます。しかし、「メインビュー」をビューコントローラに追加して、どんな空間が残っていますか?私のコードは今ではiPadの画面全体をいっぱいにすることはないので、 – LuckyLuke