iOS 让APP支持横竖屏

代码示例
  • Appdelegate添加属性(在Appdelegate.m中添加该属性)

      /** 是否允许横屏属性*/  
      @property (nonatomic,assign)BOOL isAllowRotation; 
    
  • 设置可以支持的方向(在AppDelegate.m中添加)

      - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window{
          if (self.isAllowRotation) {
              return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
          }
          return UIInterfaceOrientationMaskPortrait;
      }
    
  • 设置控制横竖屏打开关闭的方法(在AppDelegate.m中添加)

      /** 允许横屏*/  
      - (void)setCanAllowRotation{  
          self.isAllowRotation =YES;  
      }  
    
      /** 禁止横屏*/  
      - (void)setCanNotAllowRotation{  
          self.isAllowRotation =NO;  
      }  
    
  • 在AppDelegate.h中声明两个方法

      /** 支持横屏接口,需要在view消失时设置为不支持,否则其他页面也会支持横屏*/  
      - (void)setCanAllowRotation;  
      /** 不支持横屏接口*/  
      - (void)setCanNotAllowRotation;  
    
  • 在pch文件中添加这部分代码

      /**  获得appdelegate*/  
      #define APPDELEGATE (AppDelegate *)[[UIApplication sharedApplication] delegate]  
    
      //不支持横屏  
      #define CANNOTSCALE AppDelegate * appDelegate = APPDELEGATE;[appDelegate setCanNotAllowRotation];  
      //支持横屏  
      #define CANSCALE AppDelegate * appDelegate = APPDELEGATE;[appDelegate setCanAllowRotation];  
    
代码说明
  • 需要在需要使用的viewController中的viewWillAppear中打开支持横竖屏,然后在viewWillDisAppear中关闭支持横竖屏,下面是调用展示

      - (void)viewWillAppear:(BOOL)animated{
          [super viewWillAppear:animated];
          CANSCALE
      }
    
      - (void)viewWillDisappear:(BOOL)animated{
          [super viewWillDisappear:animated];
          CANNOTSCALE
      }
    
相关推荐
Macdo_cn6 小时前
My Metronome for Mac v1.4.2 我的节拍器 支持M、Intel芯片
macos·音视频
AL.千灯学长6 小时前
DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署
人工智能·gpt·ios·ai·苹果vision pro
吹泡泡的派大星7 小时前
从0-1搭建mac环境最新版
macos
zhouwu_linux7 小时前
MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
linux·运维·macos
丁总学Java7 小时前
在 macOS 的 ARM 架构上按住 Command (⌘) + Shift + .(点)。这将暂时显示隐藏文件和文件夹。
macos
青木川崎7 小时前
Mac下常用命令
macos
ClaNNEd@7 小时前
Mac端homebrew安装配置
macos·brew
nicekwell8 小时前
macos sequoia 禁用 ctrl+enter 打开鼠标右键菜单功能
macos
丁总学Java12 小时前
在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键
macos·snipaste
天下皆白_唯我独黑16 小时前
brew Nushell mac升级版本
macos