【原】兼容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 方法就行
本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/3191762.html,如需转载请自行联系原作者
 
相关文章
|
iOS开发
iOS6中横屏的处理方法
iOS6中横屏的处理方法
214 0
iOS6中横屏的处理方法
在使用蓝牙接口,遇到IOS下正常,Android下不正常的简易处理方法
如果遇到以上的情况怎么办,先确定下在调试的时候是否打开了调试面板, 如果有打开请关闭调试面板看是否还有问题,目前在安卓上打开调试面板是会有影响到蓝牙接口的使用,从之前遇到过这些问题的统计中也确实是因为这个原因
516 0
|
iOS开发
iOS post提交数据有嵌套数组的处理方法
2017年11月21日17:11:43 解决办法, 修改iOS框架里的代码: http://www.jianshu.com/p/130daa0c2fe7 确实有效, 要不然,  内层的每一个键值对都会变成一个单独的dic, 这样原来的两层就变成了3层:     ===>
1201 0
|
iOS开发
iOS接收null的处理方法
经常服务器返回的数据,有null,还有nil,如果在模型层不处理的话,到时候数据展现时,一定会崩啊,最近决心要解决这个问题,所以查看了一些资料后,有答案了: - (id) setNoNull:(id)aValue{ if (aValue == ...
941 0
|
iOS开发 C++
ios 中弹窗的编程 和 一些处理方法
<p style="color:rgb(51,51,51); font-family:Arial; font-size:14px; line-height:26px"> 1. 在ios开发中使用 弹窗来显示信息。</p> <p style="color:rgb(51,51,51); font-family:Arial; font-size:14px; line-height:26px"
1578 0
|
10月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
8月前
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
466 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
7月前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
204 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡