2

私はいくつかの問題を抱えている非常に基本的な質問をしています。私はiPhoneとiPadの違いを知っています...iPadがサポートしてSplitViewいますpopup overが、設計中にエラーが発生します。私は設計しましたUITextView

UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(42, 150, 440, 60)];

これはテキストビューを設計するための基本的なコードですが、iPadシミュレーターでこのコードを実行すると、問題ないように見えます。しかし、iPhoneで実行すると、そのiPhoneのサイズが異なるため、うまくいきません。その場合、iPhoneとiPadの両方でうまく実行するにはどうすればよいですか。

4

1 に答える 1

2

ユニバーサル実行可能ファイルを選択していると想定しているため、条件付きコンパイルはオプションではありません。

ユニバーサル実行可能ファイルを作成するときは、デバイスタイプに応じて呼び出しを行う前に、依存している機能を確認する必要があります。この特定のケースでは、特定のサイズの画面に依存しています。「マジックナンバー」(42、15、440、および60)をハードコーディングする代わりに、使用可能な画面の現在のサイズから計算する必要があります。

CGFloat w = [UIScreen mainScreen].bounds.size.width;
CGFloat h = [UIScreen mainScreen].bounds.size.height;
// Do something like this if you can
UITextView *textview = [[UITextView alloc]
    initWithFrame:CGRectMake(w*0.025, h*0.25, w*0.5, h*0.125)
];

ビューを画面に比例して拡大縮小したくないため、画面サイズから実際のサイズを計算できない可能性があります。このような場合は、hとの値を確認しw、デバイスサイズを検出し、対応する事前定義されたサイズのセットを使用してビューを初期化できます。

于 2012-09-29T11:20:40.470 に答える