iOS 特定界面横屏处理

1. 项目全局设备方向设置:

首先全局开关要开所有支持的方向,否则就算页面内部支持了,也是没有效果。


屏幕快照 2019-03-13 下午8.59.06.png

2. 指定页面设置横屏:

目标UIViewController上 需要重载下面两个方法:

// 方法一
- (BOOL)shouldAutorotate{
    return YES;
}

// 方法二
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}

ps

例如全局至设置了 Portrait, Landscape Left,Landscape Right, 那么即使界面设置支持UIInterfaceOrientationMaskAll, 运行起来该界面也是没有Upside Down效果的。
而当项目全局设置了所有(四个)方向,但是界面上只设置了Landscape Left,Landscape Right,那么运行的效果只有横屏左右两个方向。

  • 总结:
  1. 项目全局开发决定了每个页面的方向范围
  2. 界面重载支持了哪些方向只能支持在全局范围下有的方向,超出的方向无效。