详解Android中Runtime解决屏幕旋转问题(推荐)
2016-09-17 10:59
736 查看
大家或许在iOS程序开发中经常遇到屏幕旋转问题,比如说希望指定的页面进行不同的屏幕旋转,但由于系统提供的方法是导航控制器的全局方法,无法随意的达到这种需求。一般的解决方案是继承UINavrgationViewController,重写该类的相关方法,这样虽然也能解决问题,但是在重写的过程中至少产生两个多余的文件和不少的代码,这显然不是我们想要的。下面就使用一种较底层的方法解决这个问题。
基本原理
动态的改变UINavrgationViewController的全局方法,将我们自己重写的supportedInterfaceOrientations、shouldAutorotate方法和导航控制器对象的方法进行替换即可。
准备工作
配置项目支持方向
代码实现
将下面的方法写在所有视图控制器的父类的viewDidLoad方法中,即可完成屏幕旋转方向的配置。
//获取当前视图控制器的旋转支持方法 Method selfMtihod = class_getInstanceMethod([self class], @selector(shouldAutorotate)); //获取当前导航控制器的旋转支持方法 Method navr = class_getInstanceMethod([self.navigationController class], @selector(shouldAutorotate)); //交换方法 method_exchangeImplementations(selfMtihod, navr); //以下同理 Method selfOrientation = class_getInstanceMethod([self class], @selector(supportedInterfaceOrientations)); Method navrOrientation = class_getInstanceMethod([self.navigationController class], @selector(supportedInterfaceOrientations)); method_exchangeImplementations(selfOrientation, navrOrientation);
使用方法
在上面的父类中重写supportedInterfaceOrientations、shouldAutorotate,表示默认的屏幕旋转相关属性。
在之后的每个该试图控制器的子类中,可重写supportedInterfaceOrientations、shouldAutorotate方法,即可完成指定视图控制器方向的需求。
以上所述是小编给大家介绍的Runtime解决屏幕旋转问题的方法详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
- Android实现屏幕旋转方法总结
- Android开发 旋转屏幕导致Activity重建解决方法
- Android屏幕旋转 处理Activity与AsyncTask的最佳解决方案
- Android webview旋转屏幕导致页面重新加载问题解决办法
- Android6.0 固定屏幕功能实现方法及实例
- Android6.0 屏幕固定功能详解
- 详解Android权限管理之Android 6.0运行时权限及解决办法
- Android6.0动态申请权限所遇到的问题小结
- Android 6.0调用相机图册崩溃的完美解决方案
- Android适配安卓6.0蓝牙通讯实现过程
- Android 6.0权限申请详解及权限资料整理
- Android6.0开发中屏幕旋转原理与流程分析
相关文章推荐
- 《android 底层开发技术实战详解》第二章搭建开发环境问题解决
- Fragment内部控件操作的E/AndroidRuntime(1778): java.lang.NullPointerException问题解决
- Android中ListView的item按钮监听错乱问题解决办法 推荐
- Android自定义控件系列八:详解onMeasure()(二)--利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)
- ERROR/AndroidRuntime(17121)的问题解决
- Android自定义控件系列八:详解onMeasure()(二)--利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题
- Android自定义控件系列八:详解onMeasure()(二)--利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题
- 实例详解Android解决按钮重复点击问题
- Android自定义控件系列八:详解onMeasure()(二)--利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题
- Android有效解决加载大图片时内存溢出的问题详解
- 【游戏开发备注之一】解决Cocos2dx_v1.x版本图片白块,编译Android闪退等问题 推荐
- Android通过Runtime.getRuntime().exec实现Ping和Traceroute命令时readLine阻塞问题解决
- Android通过Runtime.getRuntime().exec实现Ping和Traceroute命令时readLine阻塞问题解决
- 如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题
- Gradle 构建 android 应用常见问题解决指南 推荐
- Android笔记:常见错误问题及解决方法汇总 推荐
- 开发问题及解决 E/AndroidRuntime(15377): Caused by: java.lang.InstantiationException: can't instantiate clas
- Android studio推荐插件以及升级后插件丢失问题解决
- 如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题