我正在使用最新的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 :(得分: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。