zoukankan      html  css  js  c++  java
  • object-c中实现特定一个或者多个页面横竖屏,其他界面保持竖屏显示。

    1.首先设置项目支持的屏幕方向。info.plist设置(自行设置)

    2.写一个子类CusNavigationController 继承 UINavigationController,在CusNavigationController.m中重写方法:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    UIViewController *vc = self.topViewController;
    if([vc isKindOfClass:[RegionViewController class]]){//要横屏的界面
    return (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight);//选择需要支持的翻转方向
    }
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);//其他界面均为竖屏

    }

    - (BOOL)shouldAutorotate {
    UIViewController *vc = self.topViewController;
    if([vc isKindOfClass:[RegionViewController class]]){//要横屏的界面
    return YES;
    }
    //横屏的上一个界面,要返回为YES,否则横屏返回的时候上一界面不能还原成竖屏
    if([vc isKindOfClass:[RootViewController class]]){
    return YES;
    }
    return NO;
    }
    3.在需要横竖屏翻转的ViewController.m(这里为RegionViewController) 重写以下方法:
    - (BOOL)shouldAutorotate {
    //是否允许转屏
    return YES;
    }

    - (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    //viewController所支持的全部旋转方向
    return UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskLandscapeLeft|UIInterfaceOrientationMaskLandscapeRight ;
    }

    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    //viewController初始显示的方向
    return UIInterfaceOrientationPortrait;
    }
    4.如果使用了autolayout布局的话,可以实现横竖屏适配。

  • 相关阅读:
    操作系统之磁盘结构笔记
    Linux 操作系统位数(32or64)识别
    手把手教你mysql(十)索引
    Linux命令 — 设置或查看网络配置命令ifconfig
    字符数组的排列
    android 加载图片防止内存溢出
    eCos系统CPU负载测量
    模糊控制——理论基础(4模糊推理)
    模糊控制——理论基础(3模糊关系及其运算)
    模糊控制——理论基础(2隶属函数)
  • 原文地址:https://www.cnblogs.com/gwca/p/7702141.html
Copyright © 2011-2022 走看看