iOS开发中屏幕旋转至一个方向后再手动设置屏幕旋转至该方向无效问题
来源:互联网 发布:spss数据分析课程 编辑:程序博客网 时间:2024/06/05 22:08
场景描述
项目中用到的录制视频的功能,所以需要处理视频的横竖屏录制问题。说明:只有在录制视频页面才能旋转屏幕,其他页面都是竖屏显示。
首先,简单说下录制视频的逻辑。在录制视频前,屏幕是可以旋转的,已经开始录制后,禁止屏幕旋转。
我遇到的问题:
从一个页面(竖屏)跳转到视频录制页面,调整屏幕方向,横屏录制,开始录制后,屏幕不能旋转。此时,我想返回上一页面(竖屏)。那么问题来了,如果在返回上一页面前,将手机调整至竖屏显示方向(此时页面不可旋转,为横屏显示),再跳转至上一页面(竖屏),则手动设置的屏幕旋转无效。
说明:手动设置屏幕旋转的代码如下,
- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationPortrait] forKey:@"orientation"];}
问题分析
当调整手机的方向的时候,会触发两个方法shouldAutorotate和supportedInterfaceOrientations。
如果按照上述步骤(我遇到的问题:)操作,最后手动设置屏幕旋转的代码未生效,未触发方法shouldAutorotate和supportedInterfaceOrientations。
解决办法
在手动设置屏幕旋转的代码前,设置先将屏幕旋转至其他方向,再旋转至最终的方向。
- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"]; [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationPortrait] forKey:@"orientation"];}
注意
关于屏幕旋转的方法,网上的资料很多。但是值得注意的是,如果你使用了UINavigationController或UITabBarController,需要做特殊处理。
阅读全文
0 0
- iOS开发中屏幕旋转至一个方向后再手动设置屏幕旋转至该方向无效问题
- 禁用屏幕旋转后,手动设置camera预览方向
- iOS控制屏幕旋转方向
- 手动设置屏幕的方向或者称之为旋转
- iOS屏幕旋转,屏幕自适应方向变化
- 屏幕旋转方向
- IOS 6下设置屏幕旋转方向代码
- WM6设置及获取屏幕旋转方向
- ios开发屏幕旋转锁定时判断设备的方向
- Unity3D研究院之设置自动旋转屏幕默认旋转方向
- 打包发布关于设置自动旋转屏幕默认旋转方向
- 手动旋转iOS屏幕
- iOS 的Viewcontroller只支持一个屏幕方向,弹出不同方向,旋转
- iOS手动旋转屏幕、自动旋转屏幕
- IOS开发之——手动设置屏幕旋转
- IOS开发之——手动设置屏幕旋转
- iOS中检测当前设备的旋转方向(关闭屏幕旋转)
- iOS中关闭屏幕旋转功能时如何判断屏幕方向
- eclipse javaWeb项目的环境搭建
- MAC终端命令大区
- 分享几个好看的Bootstrap后台管理响应式模板
- typescript引入项目同步json文件方法总结
- 关于脚本的执行路径问题
- iOS开发中屏幕旋转至一个方向后再手动设置屏幕旋转至该方向无效问题
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- Maven打包时报Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war解决方案
- TensorFlow框架(4)之CNN卷积神经网络详解
- 路由器 无线桥接
- ionic2 问题
- iOS开发稀碎小技巧三
- Node 127.0.0.1:7001 is not empty. Either the nodealready knows other nodes
- vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏