一類情況:
初始化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中刪除的時候務必在之前注銷這個監聽,否則會崩潰程序
可以添加析構函數:
?
?