它何时将方向更改为默认方向?

时间:2013-03-19 06:56:31

标签: ios objective-c screen-orientation

我正在使用最新的SDK开发iOS应用程序。

我的应用程序仅支持横向右方向,它只有一个视图控制器。我设置了唯一可用的方向修改myProject-info.plist

我正在尝试理解为什么此代码在纵向模式下为视图输出日志时,我只支持横向右方向。

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
    UIView *videoView = self.videoPreviewView;
    NSLog(@"Video frame: %@", NSStringFromCGRect(videoView.frame));
}

控制台输出:

Video frame: {{0, 0}, {320, 568}}

我正在使用AVCaptureVideoPreviewLayer并且我需要设置其框架,但是当我在viewWillAppear:上执行此操作时,我会获得纵向值,但orientation值是横向右侧。

当方向更改为横向时,是否会触发事件或类似内容?

应用何时将方向更改为默认方向?

2 个答案:

答案 0 :(得分:0)

进入xCode,然后点击屏幕顶部的项目名称(下面有一个xcode LOGO)。 然后显示iPhone / Ipad开发信息并选择您希望为用户提供的方向:)

答案 1 :(得分:0)

如果添加以下行:

  

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged)name:UIDeviceOrientationDidChangeNotification object:nil];

然后每次更改方向时都会调用-(void)orientationChanged;方法。然后你可以做类似的事情:

-(void)orientationChanged {
    if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation) {
        //device is portrait;
    }
    else {
        //device is landscape;
    }
}

然后,您可以使用它来根据方向确定视图和设置的布局。

编辑: 您还可以检查statusBar方向返回的方向是否等于UIDeviceOrientationLandscapeLeft / LandscapeRight / Portrait / PortraitUpsideDown。