1. 程式人生 > >swift 螢幕旋轉以及狀態列問題解決方案

swift 螢幕旋轉以及狀態列問題解決方案

Swift螢幕旋轉以及狀態列問題解決方案


本文主要介紹螢幕旋轉的方法處理,期間狀態列出現的問題的解決,還有強制螢幕翻轉的問題

點選檢視本文Demo

1.螢幕旋轉專案配置,支援home鍵在下,左,右


2. 螢幕旋轉所用到的方法

override var shouldAutorotate: Bool
override var supportedInterfaceOrientations: UIInterfaceOrientationMask
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation
剛開始以為只要在控制器中,重寫這幾個方法就行了,但是這樣做是沒有效果的,如果專案中有導航控制器,必須在自定義的導航控制器實現,然後再在子控制器中實現。


2.1注意:如果專案有TabbarController,必須實現以下方法


3.在需要旋轉的控制器中實現如下方法




以上即可完成對控制器的上左右的翻轉,左右說的是相對home鍵所在的位置,具體檢視原始碼註釋

4.涉及到的一些監聽螢幕旋轉的方法,注意如何強制螢幕旋轉,如下



4.1 注意:強制螢幕旋轉需要在子控制器中呼叫強制旋轉方法,並且實現支援的旋轉方向方法



5.狀態列問題解決:(1)狀態列橫屏消失與隱藏

(2)狀態列顏色修改

(1)狀態列橫屏消失與隱藏

配置info.plist


在控制器中重寫

override var prefersStatusBarHidden: Bool

即可

(2)狀態列顏色修改

可以通過導航控制器的barStyle進行控制



以上就完成了所有需要的配置

點選檢視本文Demo

效果圖(圖有點兒low,圖不重要,主要看功能大笑








附錄:(不推薦)

網上還有其他的解決方案,通過監聽螢幕的旋轉,實現對控制器的旋轉,個人感覺還是以上的這種方式比較好,更加容易控制,如有興趣可以參考下下面:

1.設定旋轉方向為home在下


2.在導航控制器中使用通知監聽



3.在子控制器中關閉自動旋轉



點選檢視本文Demo