zoukankan      html  css  js  c++  java
  • 强制横屏或者竖屏

      应用中可能会遇到在某个页面强制显示横屏或者竖屏的需求。然鹅,系统默认的 只有你在当前页面改变了横竖屏的状态时(也就是 有横屏转为竖屏 或者 竖屏转为横屏的操作)才会触发横竖屏、改变横竖屏。

      现在,我们怎么才能进入或者从某个页面退出 就默认设置当前页面强制变为横屏或者竖屏?

      

      需要的方法 

      1、

       - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window   用于更改横竖屏的状态 返回的是枚举
      2、
      更改UIDevice中的 key 为 @“orientation” 的值
     
      具体实现:
      1、 在AppDelegate.h中 声明一个BOOl 值 isAllowRotation 用于控制当前页面 横竖屏的状态
      然后实现 
    - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window {
        if (self.isAllowRotation == YES) {
          //横屏 return UIInterfaceOrientationMaskLandscape;
        }else{
          //竖屏 return UIInterfaceOrientationMaskPortrait;
        }
      }
     
      2、添加UIDevice 的 分类 并 实现更改 orientation 的value
      
      + (void)switchNewOrientation:(UIInterfaceOrientation)interfaceOrientation {
         NSNumber *resetOrientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationUnknown];
        [[UIDevice currentDevice] setValue:resetOrientationTarget forKey:@"orientation"];
        NSNumber *orientationTarget = [NSNumber numberWithInt:interfaceOrientation];
        [[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"];
       }



      最后 在需要的地方 调用
      
      AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; //允许转成横屏
      appDelegate.isAllowRotation = YES; //调用横屏代码
       [UIDevice switchNewOrientation:UIInterfaceOrientationLandscapeRight]; }


     
      BTW
      改变横竖屏的方法是有动画的, 可以在viewDidAppear 中调用。或者 为了更好的感官 可以在 推出 或者 推入的方法调用之前 调用更改横竖屏的方法。
     
  • 相关阅读:
    mybatis做like模糊查询
    mysql带有子查询的like查询
    form表单提交,后台怎么获取select的值?后台直接获取即可,和input方式一样。
    Spring MVC 向页面传值-Map、Model和ModelMap
    JavaWeb登录、注销、退出、记住用户名和密码
    EL表达式多条件或判断用法
    三级分销会员一次查询出来的SQL语句
    mysql 中合并查询结果union用法 or、in与union all 的查询效率
    关于取List中的指定几条数据以及注意事项
    BoxedApp Packer 将您的原始应用“打包”成单个完全的可执行二进制文件
  • 原文地址:https://www.cnblogs.com/LoveStoryJX/p/9578094.html
Copyright © 2011-2022 走看看