在日常开发过程中,经常会遇到转屏的需求,最近遇到一个转屏相关的bug,顺带着总结下iOS端实现转屏需要做的事情。
什么是设备方向,什么是视图方向
首先需要明确两个概念,设备方向(UIDeviceOrientation)和视图方向(UIInterfaceOrientation)
UIDeviceOrientation:
不受锁定屏幕方向的影响,通过
[UIDevice currentDevice].orientation
客观反映出当前设备所处的方向,与视野中正在展示视图的方向无关,该属性只读,无法修改
该属性的变化可以通过监听UIDeviceOrientationDidChangeNotification来实时获得设备方向的变化
UIInterfaceOrientation:
多数的旋转都需要通过旋转controller来实现。controller的方向也就是我上面提到的视图方向,使用该枚举UIInterfaceOrientation来表达。
如果想获得当前的视图方向,可以通过以下代码获得