0

ランドスケープモードでレイアウトされたストーリーボードを使用するiPadアプリがあります。すべてのラベルとイメージビューは、ストーリーボードの中央に配置されます。横向きモードでは見栄えがしますが、タブレットを回転させるとすぐに、iPad は縦向きモードではなく横向き画面パラメーターを使用してウィジェットを再描画します。正しいモードでウィジェットを再描画するにはどうすればよいですか?

4

1 に答える 1

0

自動サイズ変更を使用して、ビューをポートレート モードに再描画できます。

または

interfaceOrientation以下のコードのように、ポートレート モードで整列されていないビューの正確な位置を設定するために使用できます。

注: ウィジェット フレームは、不適切な場合にのみ変更してください。

自動サイズ変更を使用してビューを配置する方法を学びます...これはより高く評価されます。

適切な方向感覚を持つようにアニメーション化します。

iOS6の場合- (BOOL) shouldAutorotate

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    if (interfaceOrientation == UIInterfaceOrientationPortrait|| 
             interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) 
   {
       //Code
        dispatch_async(dispatch_get_main_queue(), ^{
            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:0.5];
            [UIView setAnimationCurve:UIViewAnimationCurveLinear];
            _btn1.frame = CGRectMake(190, 270, 137, 240);
            _btn2.frame = CGRectMake(440, 270, 137, 240);
            _btn3.frame = CGRectMake(300, 40, 137, 240);
            [UIView commitAnimations];
        });

   }
   else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight||
                   interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
  {

    dispatch_async(dispatch_get_main_queue(), ^{
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationCurve:UIViewAnimationCurveLinear];
        _btn1.frame = CGRectMake(250, 180, 137, 240);
        _btn2.frame = CGRectMake(640, 180, 137, 240);
        _btn3.frame = CGRectMake(440, 40, 137, 240);
        [UIView commitAnimations];
    });

    //Code
}

return YES;

}
于 2013-10-21T14:21:43.677 に答える