相机应用程序支持的方向?

时间:2013-07-20 18:34:06

标签: iphone ios objective-c uiinterfaceorientation

我想和相机应用程序做同样的事情:看起来只支持纵向模式,但是当您旋转某些视图时,工具栏和某些控件位于同一位置时会旋转。

我试图在PLIST文件中禁用所有支持的方向,但这不会调用诸如shouldRotate之类的委托方法,或者显然会调用willRotate来执行方向更改。

当支持的方向在PLIST中时,iPhone会旋转所有视图,即使我为shouldRotate方法返回NO。

如何解决这种困境?

1 个答案:

答案 0 :(得分:2)

info.plist中,将唯一支持的方向设置为Portrait。然后,在您viewDidLoad方法中,添加:

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

这将调用方法:

- (void)didRotate:(NSNotification *)aNotification; {
  UIDeviceOrientation currentDeviceOrientation = [[UIDevice currentDevice] orientation];

  switch(currentDeviceOrientation){
    case UIDeviceOrientationPortrait:
      break;
    case UIDeviceOrientationPortraitUpsideDown:
      break;
    case UIDeviceOrientationLandscapeLeft:
      break;
    case UIDeviceOrientationLandscapeRight:
      break;
    default:
      break;
  }
}

从那里,您可以根据任何选项做任何您想做的事情。另外,不要忘记添加:

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];

给你dealloc方法。希望有帮助!