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布局的话,可以实现横竖屏适配。

  • 相关阅读:
    【Java】 Spring 框架初步学习总结(一)简单实现 IoC 和 AOP
    【Java】MyBatis框架初步学习总结
    CPLEX在Linux上的安装与配置
    CPLEX在IDEA上的配置
    WINDOWS系统下用BAT脚本运行JAR包
    启发式算法:遗传算法 (Genetic algorithm)
    Java基础知识:集合框架
    Java基础知识:Collection接口
    打印n位数的最大值
    我喜欢的博客
  • 原文地址:https://www.cnblogs.com/gwca/p/7702141.html
Copyright © 2011-2022 走看看