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 中调用。或者 为了更好的感官 可以在 推出 或者 推入的方法调用之前 调用更改横竖屏的方法。
     
  • 相关阅读:
    如何在iTerm2中配置oh my zsh?
    sublime中格式化jsx文件
    ES6 new syntax of Literal
    ES6 new syntax of Rest and Spread Operators
    How to preview html file in our browser at sublime text?
    ES6 new syntax of Default Function Parameters
    ES6 new syntax of Arrow Function
    七牛云2018春招笔试题
    Spring-使用注解开发(十二)
    Spring-声明式事物(十一)
  • 原文地址:https://www.cnblogs.com/LoveStoryJX/p/9578094.html
Copyright © 2011-2022 走看看