zoukankan      html  css  js  c++  java
  • 【原】兼容IOS6以及旧版本的旋转处理方法,心得总结

    最近的项目需要频繁处理屏幕的旋转以及各控件的自适应坐标。IOS6出来之后,屏幕旋转的处理方法变得复杂很多。在查阅了很多资料以及动手测试之后,得出以下几点精简的体会:

    对于IOS6.0以上版本:

    1.如果想让所有的ViewController的旋转控制方式统一,则只需要在RootViewController里面重载shouldAutorotate 以及 supportedInterfaceOrientations 方法。一般的RootViewController都为UINavigationViewController或者UITabbarViewController。  问题来了:Navi以及Tab控制器都是系统自带的,如何添加上述两个方法呢?自己继承一个Navi或者Tab控制器的子类,然后让这个子类:self.window.rootViewController = myNaviCtrl;

    2.如果想让其中的一些ViewController自己有自己的旋转控制方式,则应该在上述自己继承的Navi或者Tab控制器里做如下处理:

    1 - (BOOL)shouldAutorotate  
    2 {  
    3     return self.topViewController.shouldAutorotate;  
    4 }  
    5   
    6 - (NSUInteger)supportedInterfaceOrientations  
    7 {  
    8     return self.topViewController.supportedInterfaceOrientations;  
    9 }

    然后在每个ViewController里面自己重载上述两个方法,设置自己的方向值。

    3.同理,如果在你的delegate里面,self.window.rootViewController = viewCtrl,而不是navCtrl,那么上面的那2个控制旋转的方法就应该写在UIViewController里面!

    IOS4/ 5:

    这个简单很多,没有上面的硬性条件,只需要在需要旋转的viewController里面重写 shouldAutorotateToInterfaceOrientation 方法就行
     
    还有其他一些注意事项,可以参考:
  • 相关阅读:
    关于ASPack 2.12加壳软件的脱壳方法[图文]
    OllyDbg快捷键记录帖
    C console编程
    用着VC++ Debug 理解汇编与C语言的对应关系
    赵青-《剑侠情缘网络版》开发回顾
    VC++ 预定义常量
    oracle分区自动创建
    清理oracle lobsegment
    libXext.so.6: cannot open shared object file: No such file or directory
    Oracle 杀死锁进程
  • 原文地址:https://www.cnblogs.com/wengzilin/p/3191762.html
Copyright © 2011-2022 走看看