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
      }
相关推荐
编程范式1 天前
SwiftUI 中图片如何适配可用空间
ios
counterxing2 天前
最近发现一个 Mac 工具,有点像把 Raycast、语音输入法、截图和录屏塞到了一起
macos·ai编程·claude
songgeb3 天前
启发式 UI 自动化:从线性剧本到每步读屏决策
ios·测试
壹方秘境7 天前
我用Go语言开发了一个跨平台的HTTPS抓包和调试工具
前端·后端·ios
元Y亨H9 天前
MacBook Air 开发神器:IDEA 与 PyCharm 极简安装及环境配置
macos
yuanyxh10 天前
macOS 应用 - 纯对话生成
前端·macos·ai编程
AI创界者12 天前
PilotTTS 一键整合包(Win/Mac):8G 显存畅跑,实测解锁情绪与副语言的精准控制
人工智能·macos·aigc·音视频
AirDroid_cn12 天前
系统终端与iTerm2字体看起来不一样?macOS Sequoia统一渲染指南
macos
初级代码游戏12 天前
easy Photo Clean公测版:快速清理iPhone照片 邀请公测
ios·iphone
库奇噜啦呼12 天前
【iOS】RunLoop学习
学习·ios