iOS 屏幕旋转 状态栏 隐藏问题

一、首先说一下关于在做视频播放过程中,全屏时屏幕旋转的问题

如果程序的所有VC都不需要屏幕旋转,有两种解决方案:第一是在info.plist文件中,将Supported interface orientations  属性下的Landscape(left home button)和 Landscape(right home button) item删除,只留下Portrait item,程序就不会发生屏幕旋转。

第二种:在Appdelegate.m中重写

-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window  方法

始终返回 UIInterfaceOrientationMaskLandscapeLeft

-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{

return UIInterfaceOrientationMaskLandscapeLeft;

}

如果需要在部分VC中使用全屏,部分VC中使用竖屏。

以下是我个理解,可能不太准确,还希望更多的大牛指正

我发现,每当设备旋转或者程序强制旋转时,系统就会调用 Appdelegate 对象的-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window方法。根据其返回值确定屏幕的方向。

因此思路就是:在Appdelegate类中增加一个UIInterfaceOrientationMask
属性,然后重写-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 方法,


当某一个VC需要屏幕旋转时,将UIinterfaceOriensMask设置为指定的值,然后在当前的VC中执行如下代码

- (void)interfaceOrientation:(UIInterfaceOrientation)orientation{

if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {

SEL selector             = NSSelectorFromString(@"setOrientation:");

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];

[invocation setSelector:selector];

[invocation setTarget:[UIDevice currentDevice]];

int val= orientation;

[invocation setArgument:&val atIndex:2];

[invocation invoke];

}


系统就会调用-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 方法,修改当前屏幕方向。

<今天太晚了,明天要上班呢,明天晚上更新statusBar的问题,后续我一把我写的demo和视频的的一个小框架传上来,供大家参考斧正>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、IOS8之后有的方法写到类里强制横屏之后已经没有用了 -(BOOL)shouldAutorotate{ ret...
    RmondJone阅读 1,185评论 0 0
  • 最近有一个项目,例如:A界面跳转到B界面,A界面是竖屏的,B界面进入就要横屏。 花了半天的时间在网上搜索解决方案,...
    手中的风信子阅读 20,922评论 6 29
  • 在做工程的时候碰到了屏幕旋转的问题,如今已经解决.为大家分享一下 屏幕旋转机制流程 (1)加速计检测到方向变化,发...
    DVWang阅读 585评论 1 0
  • 第一章 那一日晴空万里,我随着陈府管家逶迤的走在陈府的后院。他絮絮叨叨地说着,我心不在焉地听着,陈家少爷自从狩猎时...
    紫陌辰阅读 1,059评论 1 11
  • 狗深深地爱上了狐狸,可他们却遇到了死神。 死神说:“你们两个只能活一个,你们猜拳吧,输的就得死。” 最后,狐狸输了...
    心疼你的疼阅读 10,301评论 0 0

友情链接更多精彩内容