iOS设备横竖屏处理

我们在做页面横竖屏处理的时候无外乎涉及到三个方面的设置,但之前并不理解这几种设置的作用方式,今天按照自己的理解来梳理一下。

优先级:1>2>3。

xcode设置

1、xcode设置:比如,我们在xcode设置里面所有方向都勾选了,那么我们的app是支持所有方向旋转的。所以在这里,我们要想好app的主要支持方向,多数app是主要支持竖屏页面的,所以一般只会勾选Portrait。那也就意味着,如果我们不做多余处理,app只支持竖屏。


AppDelegate设置


2、AppDelegate设置:上面说了,app是主要支持竖屏的,但会涉及到一些横屏页面的处理,比如:播放器。那我们就需要在AppDeleagte里面设置支持横屏和竖屏,LandscapeRight、LandscapeLeft、Portrait。这里设置的意义在于,我不希望应用跟随设备进行旋转,但我又希望app内部支持横屏页面。


ViewController设置

3、ViewController设置:能走到这一步说明,我这个页面是需要特殊处理的,那就涉及到以上三个方法。

第一个方法:是否支持旋转,默认为YES。这个顾名思义,就是你希望当前页面是否跟随设备旋转。如果设置成yes,那你需要保证appdelegate里面是支持多个方向的,否则会崩溃

第二个方法:页面支持的方向。如果我们这个页面只支持右横屏,那就设置成LandscapeRight就可以了。

第三个方法:我理解这个方法只针对模态视图和rootViewController。比如你要在竖屏页面present一个横屏页面,但又要控制好推出页面的显示方向,可在在这设置。这里要注意,你设置的方向需要在方法二种做支持,否则会崩溃。


还有一种情况,比如在做ipad应用的时候,要求设备只支持横屏一个方向,那就在AppDelegate设置里面return一个方向就可以,后面的方法不需要处理。

现实中的需求比以上我列举的几种要复杂的多,但只要能准确理解好以上几种方法的作用,就可以应对不同的产品需求。

你可能感兴趣的:(iOS设备横竖屏处理)