我正在寻找有关如何仅允许您的 iOS 应用程序使用某些方向的说明。我知道,UISupportedInterfaceOrientations
但shouldAutorotateToInterfaceOrientation
我对它们的用途以及它们如何组合在一起有点困惑。
我试图使用UISupportedInterfaceOrientations
只允许横向方向,这似乎没有影响,直到我研究它并读到它会影响初始方向。经过测试,我的应用似乎只在横向打开,但如果屏幕是纵向的,它会快速旋转。
我知道你可以shouldAutorotateToInterfaceOrientation
用来限制允许的方向,例如:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
但是,在进行一些在线阅读时,我阅读shouldAutorotateToInterfaceOrientation
的内容从 iOS6 开始已被弃用。
基本上我的问题是:
- 跨多个 iOS 版本限制屏幕方向的正确方法是什么?
- 是唯一用于
UISupportedInterfaceOrientations
限制初始方向的吗?
编辑:
要扩展已接受的答案,shouldAutorotate
可在 iOS6 中使用。如果您已经在其中实现了逻辑shouldAutorotateToInterfaceOrientation
和/或想要支持早期版本的 iOS,作为快速修复,您可以执行以下操作:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
- (BOOL)shouldAutorotate {
return [self shouldAutorotateToInterfaceOrientation:self.interfaceOrientation];
}