我們在做頁面橫豎屏處理的時候無外乎涉及到三個方面的設置,但之前并不理解這幾種設置的作用方式,今天按照自己的理解來梳理一下脾歧。
優(yōu)先級:1>2>3。
1演熟、xcode設置:比如鞭执,我們在xcode設置里面所有方向都勾選了,那么我們的app是支持所有方向旋轉的芒粹。所以在這里兄纺,我們要想好app的主要支持方向,多數(shù)app是主要支持豎屏頁面的化漆,所以一般只會勾選Portrait估脆。那也就意味著,如果我們不做多余處理座云,app只支持豎屏疙赠。
2、AppDelegate設置:上面說了朦拖,app是主要支持豎屏的圃阳,但會涉及到一些橫屏頁面的處理,比如:播放器璧帝。那我們就需要在AppDeleagte里面設置支持橫屏和豎屏限佩,LandscapeRight、LandscapeLeft裸弦、Portrait祟同。這里設置的意義在于,我不希望應用跟隨設備進行旋轉理疙,但我又希望app內(nèi)部支持橫屏頁面晕城。
3、ViewController設置:能走到這一步說明窖贤,我這個頁面是需要特殊處理的砖顷,那就涉及到以上三個方法贰锁。
第一個方法:是否支持旋轉,默認為YES滤蝠。這個顧名思義豌熄,就是你希望當前頁面是否跟隨設備旋轉。如果設置成yes物咳,那你需要保證appdelegate里面是支持多個方向的锣险,否則會崩潰。
第二個方法:頁面支持的方向览闰。如果我們這個頁面只支持右橫屏芯肤,那就設置成LandscapeRight就可以了。
第三個方法:我理解這個方法只針對模態(tài)視圖和rootViewController压鉴。比如你要在豎屏頁面present一個橫屏頁面崖咨,但又要控制好推出頁面的顯示方向,可在在這設置油吭。這里要注意击蹲,你設置的方向需要在方法二種做支持,否則會崩潰婉宰。
還有一種情況歌豺,比如在做ipad應用的時候,要求設備只支持橫屏一個方向芍阎,那就在AppDelegate設置里面return一個方向就可以,后面的方法不需要處理缨恒。
現(xiàn)實中的需求比以上我列舉的幾種要復雜的多谴咸,但只要能準確理解好以上幾種方法的作用,就可以應對不同的產(chǎn)品需求骗露。