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

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

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

前言

大家或许在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中Runtime解决屏幕旋转问题(推荐)全部内容,希望文章能够帮你解决详解Android中Runtime解决屏幕旋转问题(推荐)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1148117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存