1

プログラムでビューをセットアップしようとしています。Interface Builderを使用するのではなく、ビューをプログラムすることを好みますが、何らかの理由でより適切に制御できると感じています...

2 つのサブビューとボタンを含むビューを設定しています。私が達成しようとしているのは、向きが変わっても同じビューです。最初は、画面サイズを計算してから、いくつかの分割を計算して変更を解決する必要があると思っていましたが、UIViewAutoresizing で処理できるようです***

私が経験する問題は、上部マージンにあります。サブビューのコードは次のとおりです。

    // Create sub view for Logo
UIView *logoView =[[UIView alloc] initWithFrame:CGRectMake(0,0,320,280)];
[logoView setBackgroundColor:[UIColor blueColor]];
logoView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;

// Create sub view
UIView *buttonView =[[UIView alloc] initWithFrame:CGRectMake(0, logoView.bounds.size.height, 320,200)];
[buttonView setBackgroundColor:[UIColor redColor]];
buttonView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleTopMargin;

これは、「白い」スペースを使用して、問題を確認できる縦向きと横向きの写真です。

肖像画

風景

4

2 に答える 2

1

回転後に 2 つのビュー (赤と青) に比例した量のスペースを配置する必要があります。

logoView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin;
buttonView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleTopMargin;

または、赤のビューを最初と同じサイズにし、青のビューを調整してスペースを確保したい場合:

logoView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
buttonView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;
于 2013-02-06T20:31:42.317 に答える
0

自動レイアウトを使用します。これらの問題に対処する必要はありません...

于 2013-02-05T22:00:02.277 に答える