1

テキストフィールド、ラベル、テーブル、ボタンなど、UIView にいくつかのコンポーネントがあります。デバイスの向きの変更を処理したい。これらのコンポーネントを適切な場所に自動的に配置するにはどうすればよいですか? または、それらを再フレーム化する必要がありますか?

助けてください。

ありがとう

4

3 に答える 3

4
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self adjustViewsForOrientation:toInterfaceOrientation];
}

- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation {
if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {

    // set you subviews,Label button frame here for landscape mode,,
}
else if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
    // set you subviews,Label button frame here for portrait-mode,
}
}

Delegate//このメソッドを追加することを忘れないでください

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
    // Return YES for supported orientations
    return YES;
}

うまくいけば、これはあなたを助けるでしょう..

于 2012-04-27T04:49:33.443 に答える
3

ここに画像の説明を入力向きの変更には Autosizing オプションを使用できます。コードを 1 行も書く必要はありません。

于 2012-04-27T04:50:27.457 に答える
1

これを試して

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{


    if(interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
       // portrait Arrangement
    }       
    else 
    { 
        // Landscape Arrangement
    }
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || 
            interfaceOrientation == UIInterfaceOrientationPortrait || 
            interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
            interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}
于 2012-04-27T05:38:53.253 に答える