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
      }
相关推荐
风安•辛幸2 小时前
mac上微信最新v4以上版客户端多开教程,亲测可用
macos·微信
weixin_531670899 小时前
Interlude起来:动作动画和文字通知哪个更适合休息提醒?Mac上有没有用桌宠做动作引导的软件?
人工智能·macos·mac·swift
FairGuard手游加固12 小时前
iOS 游戏加固技术解析:代码混淆、资源加密、内存保护与重签名检测
安全·游戏·macos·unity·ios·objective-c
思盛iOS签名上架13 小时前
iOS企业签名原理是什么?
macos·ios·cocoa
Daniel_Coder14 小时前
我用 SwiftUI + GRDB 做了一个「按时吃药·服药提醒」App
ios·swiftui·swift·widgetkit
Wang's Blog15 小时前
Vibe Coding一人即团队系列23: 基于Stitch/Sketch的UI原型1:1复刻工作流
人工智能·macos·ui·sketch
Patrick_Wilson16 小时前
iOS 第三方浏览器图片下载失败问题
前端·ios·浏览器
悟空瞎说1 天前
NSNotificationCenter(NotificationCenter)官方文档白话翻译 + API 详解 + Swift 实战
ios
空の鱼1 天前
Mac 上 Node 版本管理(brew + nvm 共存方案)
macos·node.js