iOS 橫豎屏切換

網上關于橫豎屏切換的資料很多,但是很容易踩到坑,不是屏幕不旋轉,就是屏幕旋轉后沒有狀態欄等,在寫的小demo里屏幕能夠旋轉,但是在項目中就不能夠旋轉,開始猜測是配置的問題,困擾好幾天,最后找到問題的根源,現在整理處理出來

有兩種情況1、工程中某個界面支持橫豎屏 ? 2、每個界面都支持橫豎屏

https://gitee.com/myc12/HengShuPingQieHuan.git

一、工程中某個界面支持橫豎屏,其他的界面不支持旋轉

首先在Info里面配置你支持的方向信息

圖一

targets -> General -> Deployment Info

接下來就是在工程中需要寫的代碼,代碼控制屏幕的旋轉

1、AppDelegate

(1)定義變量var allowRotation: Bool = false ? ?//默認情況下是false, 不支持橫豎屏

(2)定義方法

Swift代碼

圖2

2、要橫屏的ViewController

(1)?獲取變量 ?

let appDelegate = UIApplication.shared.delegate as! AppDelegate

(2)在需要觸發橫屏的方法里寫以下代碼

appDelegate.allowRotation = true // true表示支持橫屏

let value = UIInterfaceOrientation.landscapeLeft.rawValue

UIDevice.current.setValue(value, forKey: "orientation")

(3)在需要轉回豎屏的方法里這樣處理

appDelegate.allowRotation = false // false 表示支持豎屏

let value = UIInterfaceOrientation.portrait.rawValue

UIDevice.current.setValue(value, forKey: "orientation")

注意橫豎屏時界面的適配

好了,這樣就處理完了,但是可能會遇到屏幕不旋轉的情況,這又為什么,別急,查看你的根控制器是哪個控制器,在根控制器里重寫下面圖3兩個方法就可以了

圖3

橫豎屏demo鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容