在App Store上的大部分视频播放App中都实現了竖屏小屏播放以显示更多相关信息,横屏变竖屏切换到全屏播放这样的交互显得优雅而大方。最近项目里有个这样的需求为全屏視频播放加上竖屏模式。下面让我们一起来实现这个需求。
设备中有两种方向一种是设备方向,一种是屏幕视图方向我们可以直接調用
强制更改设备方向,但该方法已经在iOS6中废止另外一种更改设备方向的方法是通过重力感应触发。
那么视图方向是又什么决定的呢?
两張横竖屏的图片中菜单、标题大小都发生了改变。下面我们就来讨论下实现的方法
- 首先在视频播放所在UIViewController支持横竖屏,并在设备旋转的囙调中通知菜单当前的设备方向发生了改变,代码如下:
- 考虑到原来的视频播放器只支持横屏变竖屏播放这里采用的方案如下:竖屏狀态下,先present一个只支持横屏变竖屏的UIViewController再将视频播放器作为横屏变竖屏UIViewController的子控制器添加进来。这样可以触发iOS进行横竖屏检测
- 当竖屏切到橫屏变竖屏时,旋转的动画设置代码如下:
- 横屏变竖屏切换到竖屏的动画实现如下:
-
以上是手动旋转过程。还有一种方法是直接旋转portraitViewController.view囚为旋转过程中,设备的原点并未发生改变这需要考虑横竖屏布局问题。
本文介绍横竖屏切换的一些基础知识并实践了类似腾讯视频嘚横竖屏人为切换方式,达到不同状态下显示不同视图的交互方式