iOS 9控制界面旋轉

iOS應用的界面方向可以通過以下幾個地方來控制:
1. 項目的info.plist文件。其中的Supported interface orientations字段規定了初始狀態下的App允許的界面方向。這是初始設置,後面可以通過AppDelegate動態修改。
2. AppDelegate對象的application:supportedInterfaceOrientationsForWindow:委託方法,能夠在設備每次旋轉的時候調用,其返回值規定了App允許的界面方向。該委託返回的值會覆蓋info.plist的設置。
3. 每次旋轉的時候,窗口的RootViewController對象,或者當前模態顯示的ViewController對象,其supportedInterfaceOrientations方法返回的值,會與AppDelegate的application:supportedInterfaceOrientationsForWindow:或者info.plist文件的Supported interface orientations字段取交集,該結果決定了界面方向。如果交集爲空,即沒有公共交集,則報異常。
4. 每次旋轉的時候,窗口的RootViewController對象,或者當前模態顯示的ViewController對象,如果實現了shouldAutorotate方法並返回YES,則會參考其supportedInterfaceOrientations與AppDelegate或者info.plist的交集。如果返回NO,則不調用supportedInterfaceOrientations。
5. 我們可能會按照條件動態決定shouldAutorotate方法返回的值,以控制界面是否隨設備旋轉。如果在設備旋轉後,動態修改了條件,則界面不會隨設備旋轉。如果需要讓界面隨設備旋轉,則需要調用UIViewController類的attemptRotationToDeviceOrientation方法,這樣會重新刷新界面方向。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章