美文网首页
iOS 横屏开发

iOS 横屏开发

作者: 肉肉要次肉 | 来源:发表于2023-04-06 17:54 被阅读0次

    本项目只是个别页面需要横屏,所以不需要勾选方向,默认竖屏即可。

    注意:

    1、iOS16以下版本:只支持present跳转页面,并且是要设置scanVC.modalPresentationStyle = UIModalPresentationFullScreen;才会进入页面自动横屏生效

    2、iOS16版本:push,present都可以(亲测iOS16.4)

    1.创建单例(RotationManager)用于管理界面横竖屏状态

    .h代码

    //单例类

    +(instancetype)shareInstance;

    //是否横屏

    @property(nonatomic,assign)BOOL isRotation;

    //当前屏幕状态

    +(UIInterfaceOrientationMask)supportedInterfaceOrientationsType;

    .m代码

    static RotationManager*_manager;

    //单例方法

    +(instancetype)shareInstance{

        staticdispatch_once_t onceToken;

        dispatch_once(&onceToken,^{

           _manager=[[RotationManager alloc]init];

          _manager.isRotation=NO;

       });

    return_manager;

    }

    //查询需要的屏幕状态

    +(UIInterfaceOrientationMask)supportedInterfaceOrientationsType{

         if(_manager.isRotation){

              returnUIInterfaceOrientationMaskLandscape;

          }

          returnUIInterfaceOrientationMaskPortrait;

    }

    2.vc页调用

    记得在哪页需要,就在哪页引入头文件 #import "RotationManager.h"

    -(void)viewDidLoad{

     [superviewDidLoad];

    //开启横屏状态

    [RotationManager shareInstance].isRotation=YES;

    }

    -(void)viewWillDisappear:(BOOL)animated{

    [superviewWillDisappear:animated];

    //一定要记得关闭横屏状态,不然退出界面后依旧是横屏

    [RotationManager shareInstance].isRotation=NO;

    }

    -(BOOL)shouldAutorotate{

    returnYES;

    }

    -(UIInterfaceOrientationMask)supportedInterfaceOrientations{

       return   UIInterfaceOrientationMaskLandscapeRight|UIInterfaceOrientationMaskLandscapeLeft;

    }

    -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{

       return   UIInterfaceOrientationLandscapeRight;

    }

    3.AppDelegate

    -(UIInterfaceOrientationMask)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window{

       return [RotationManager supportedInterfaceOrientationsType];

    }

    相关文章

      网友评论

          本文标题:iOS 横屏开发

          本文链接:https://www.haomeiwen.com/subject/uvruddtx.html