iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >详解Android中Runtime解决屏幕旋转问题(推荐)
  • 871
分享到

详解Android中Runtime解决屏幕旋转问题(推荐)

屏幕旋转runtimeAndroid 2022-06-06 07:06:23 871人浏览 泡泡鱼
摘要

前言 大家或许在iOS程序开发中经常遇到屏幕旋转问题,比如说希望指定的页面进行不同的屏幕旋转,但由于系统提供的方法是导航控制器的全局方法,无法随意的达到这种需求。一般的解决方案

前言

大家或许在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开发中屏幕旋转原理与流程分析


--结束END--

本文标题: 详解Android中Runtime解决屏幕旋转问题(推荐)

本文链接: https://www.lsjlt.com/news/23930.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作