【原】兼容IOS6以及舊版本的旋轉處理方法,心得總結

最近的項目須要頻繁處理屏幕的旋轉以及各控件的自適應座標。IOS6出來以後,屏幕旋轉的處理方法變得複雜不少。在查閱了不少資料以及動手測試以後,得出如下幾點精簡的體會:測試

對於IOS6.0以上版本:spa

1.若是想讓全部的ViewController的旋轉控制方式統一,則只須要在RootViewController裏面重載shouldAutorotate 以及 supportedInterfaceOrientations 方法。通常的RootViewController都爲UINavigationViewController或者UITabbarViewController。  問題來了:Navi以及Tab控制器都是系統自帶的,如何添加上述兩個方法呢?本身繼承一個Navi或者Tab控制器的子類,而後讓這個子類:self.window.rootViewController = myNaviCtrl;.net

2.若是想讓其中的一些ViewController本身有本身的旋轉控制方式,則應該在上述本身繼承的Navi或者Tab控制器裏作以下處理:code

1 - (BOOL)shouldAutorotate  
2 {  
3     return self.topViewController.shouldAutorotate;  
4 }  
5   
6 - (NSUInteger)supportedInterfaceOrientations  
7 {  
8     return self.topViewController.supportedInterfaceOrientations;  
9 }

而後在每一個ViewController裏面本身重載上述兩個方法,設置本身的方向值。blog

 

3.同理,若是在你的delegate裏面,self.window.rootViewController = viewCtrl,而不是navCtrl,那麼上面的那2個控制旋轉的方法就應該寫在UIViewController裏面!繼承

 

IOS4/ 5:get

這個簡單不少,沒有上面的硬性條件,只須要在須要旋轉的viewController裏面重寫 shouldAutorotateToInterfaceOrientation 方法就行
 
還有其餘一些注意事項,能夠參考:
相關文章
相關標籤/搜索