我在另一个帖子中看到了这一点。我知道我需要覆盖 iOS5 的第一个方法和 iOS6 的以下两个方法。
iOS 5:
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
iOS 6
- (BOOL) shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeRight;
}
但是,我确实对如何正确使用它们有一些疑问。
- 假设我在 XCode 项目的设置中设置了supportedOrientations,我是否必须实现 shouldAutoRotate 和 SupportedInterfaceOrientations?如果我不这样做会怎样?
- 如果我不覆盖 shouldAutoRotate,默认值是 YES 吗?
- 如果我在 shouldAutorotateToInterface 中返回 NO,我会收到警告“shouldAutorotateToInterfaceOrientation:适用于所有界面方向。它应该至少支持一个方向。” 这很糟糕吗?它对我的应用程序有影响吗?
- 什么时候出现崩溃“支持的方向与应用程序没有共同的方向,并且 shouldAutorotate 返回 YES;”
- 如果我在 shouldAutorotate 中返回 NO 并且我有多个 supprotedInterfaceOrientations 会发生什么?是否与仅使用肖像相同,因为我的 VC 不会旋转?
- 如果我在 shouldAutorotate 中返回 YES,我的 Xcode 设置中有多个受支持的方向,但我覆盖了 supportInterfaceOrientations 并只返回 1,该怎么办?