一類情況:
初始化app的方向,比如只支援橫屏或者豎屏。下面舉例只支援豎屏的案例
在app的屬性裡面手動設定
上面標註了該app支援的方向種類,要是在app裡支援Portrait方向,還需要新增以下程式碼
二類情況:
上面的程式碼表明app支援了兩個方向,Protrait 和PortraitUpsideDown,如果我要求在app在某個
方向的時候禁止螢幕旋轉,該怎麼做呢?
在swift中禁止當前螢幕旋轉
UIDevice.currentDevice().endGeneratingDeviceOrientationNotifications() UIDevice.currentDevice().endGeneratingDeviceOrientationNotifications()
注意是兩行,理論上只要一行程式碼,但是可能是swift中的bug,筆者發現連續呼叫兩次才能達到
禁止螢幕旋轉的效果
開啟螢幕旋轉:
UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()
這裡只要一行就可以開啟螢幕旋轉的功能了,?
三類情況:
我們在控制了螢幕怎麼旋轉之後該怎麼監聽這些旋轉的事件呢?因為我們往往需要在螢幕旋轉的時候做
一些我們需要的操作。
在初始化的時候新增事件監聽:
override func viewWillAppear(animated: Bool) { NSNotificationCenter.defaultCenter().addObserver(self, selector: "deviceOrientChange:", name: UIDeviceOrientationDidChangeNotification, object: nil) }
在deviceOrientChange中就可以任意的寫自己需要的功能了
在UI刪除的時候一定要記得刪除監聽
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIDeviceOrientationDidChangeNotification, object: nil)
注意:
如果某個UI監聽了Notification的事件,在將這個物件在superView中刪除的時候務必在之前登出這個監聽,否則會崩潰程式
可以新增解構函式: