質問

私はランドスケープモードを使用し、合計4つのビューを持つゲームを開発しています。 風景モードでは、2つのビューが適切に表示されます。しかし、3番目のビューにはUITableとナビゲーションバーがあります。横向きモードでテーブルを回転させることはできますが、NavigationバーとNavigation Controllerを変換することはできません。ナビゲーションバーとNavigation Controllerにもボタンがあります。また、変換されません。だから誰もがこれに関する解決策を持つことができます。 :)

役に立ちましたか?

解決

ナグビゲーションコントローラのナビゲーションバーを90度回転させて変換します。 また、横向きモードに合うように適切な幅を設定するために、ナビゲーションバーの中心とフレームを設定する必要があるかもしれません。それは私のために働いた:) それがあなたにも役立つことを願っています。

他のヒント

#define degreesToRadians(x) (M_PI * x / 180.0)

- (void)viewWillAppear:(BOOL)animated
{

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];

    CGRect newBounds = CGRectMake(0, 0, 480, 320);
    self.navigationController.view.bounds = newBounds;
    self.navigationController.view.center = CGPointMake(newBounds.size.height / 2.0, newBounds.size.width / 2.0);

    self.navigationController.view.transform = CGAffineTransformMakeRotation(degreesToRadians(90));

    [super viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    self.navigationController.view.transform = CGAffineTransformIdentity;
    self.navigationController.view.transform = CGAffineTransformMakeRotation(degreesToRadians(0));
    self.navigationController.view.bounds = CGRectMake(0.0, 0.0, 320.0, 480.0);

    [super viewWillDisappear:animated];
}

UIViewControllerドキュメントのクラス:

ローテーションの処理

interfaceOrientationプロパティ
– shouldAutorotateToInterfaceOrientation:
– rotationFooterView
– rotationHeaderView
– willRotateToInterfaceOrientation:duration:
– willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:
– willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:

これがあなたにも役立つことを願っています。

A。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top