2013-03-19 102 views
0

我正在开发一个带有最新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值景观权。

是否有事件或任何类似的东西,当我在取向变为横向时被触发?

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

回答

0

进入xCode,然后单击屏幕顶部的项目名称(在其下面带有xcode LOGO)。 然后揭示了iPhone/iPad的开发信息,并选择你想成为可供用户:)

+0

我说景观权是唯一可用的方向,因为我之前做过。对不起,这不能回答我的问题。 – VansFannel 2013-03-19 07:41:37

+0

只是为了确保,只有风景权是“突出显示”(黑色)的权利。 如果不工作,然后在每个视图控制器复制此代码:) - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)取向 { 返回UIInterfaceOrientationIsLandscape(取向); } – 2013-03-19 07:43:50

+0

是的,在我提出这个问题之前就完成了。 – VansFannel 2013-03-19 07:45:31

0

如果添加行方向:

[NSNotificationCenter defaultCenter]的addObserver:自我选择:@选择(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。

+0

我已经添加了你的代码,'orientationChanged:'运行了两次,UIDevice的方向总是正确的。 – VansFannel 2013-03-19 08:51:55

+0

orientationChanged被调用的次数要多于风景/肖像。它也明显地检查了很多中间方向。我在代码中做的是存储一个具有当前方向的变量,如果它与新方向相同,则退出该方法。 – Jsdodgers 2013-03-19 09:04:53

+0

感谢您的回答,但'currentOrientation = [UIApplication sharedApplication] .statusBarOrientation;'总是返回横向正确的方向。问题是'currentOrientation = [UIApplication sharedApplication] .statusBarOrientation;'总是风景,但'UIView'在'viewWillAppear'上有纵向,我不知道它在哪里改变风景。 – VansFannel 2013-03-19 10:45:54