0

私のアプリは縦向きのみのアプリです。ランドスケープ モードでサブ ビューを追加する必要があります。新しいビューを追加するために、iOS 6 で以下の向きを設定しました。

-(NSUInteger)supportedInterfaceOrientations
{
    NSUInteger options = UIInterfaceOrientationMaskAll;

    if (self.inAppBrowserOrientation)
     {
        if (self.inAppBrowserOrientation == UIInterfaceOrientationLandscapeLeft || self.inAppBrowserOrientation == UIInterfaceOrientationLandscapeRight)
        options = UIInterfaceOrientationMaskLandscape;
        return options;
    }
}

ビューはポートレート モードで追加されます。向きでは、このビューは横向きモードでのみ回転しますが、これは予想どおりです。

ビューを追加して初めて、ポートレート モードで追加されるのはなぜですか? self.inAppBrowserOrientationがありながらUIInterfaceOrientationLandscapeRight

4

2 に答える 2

2
- (void)viewDidAppear:(BOOL)animated
{ 
    [super viewDidAppear:animated];

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:NO];
    CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(270));
    landscapeTransform = CGAffineTransformTranslate (landscapeTransform, 0.0, 0.0);
    [[self navigationController].view setTransform:landscapeTransform];
    self.navigationController.view.bounds = CGRectMake(0.0, 0.0, 480, 320);
    self.navigationController.navigationBar.frame = CGRectMake(0.0, 20.0, 480, 44.0);


} 

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];   

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];
    CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(0));
    landscapeTransform = CGAffineTransformTranslate (landscapeTransform, 0.0, 0.0);
    [[self navigationController].view setTransform:landscapeTransform];
    self.navigationController.view.bounds = CGRectMake(0.0, 0.0, 320, 480);
    self.navigationController.navigationBar.frame = CGRectMake(0.0, 20.0, 320.0, 44.0);

}

ここでは、デフォルトの向きは縦向きですが、コンパイラがviewDidAppearに移動すると、横向きモードで270度回転します。それに応じてフレームサイズを調整してください...

幸運を !!

于 2013-03-19T13:26:14.710 に答える
2

次のスニペットで試してください

-(NSUInteger)supportedInterfaceOrientations
{
    NSUInteger options = UIInterfaceOrientationMaskAll;

    if (self.inAppBrowserOrientation)
     {
        if (self.inAppBrowserOrientation == UIInterfaceOrientationLandscapeLeft || self.inAppBrowserOrientation == UIInterfaceOrientationLandscapeRight)
        options = UIInterfaceOrientationMaskLandscape;
        return options;
    }
    else
    {
        return UIInterfaceOrientationMaskLandscape;
    }

}

よくわかりませんが、初めて aqpp をロードするときにおそらくこれが問題になる可能性があります

プログラミングを楽しもう!!

于 2013-03-19T13:05:42.493 に答える