[iOS開發相容問題之]關於同步IOS6和IOS5旋屏問題

來源:互聯網
上載者:User

關於同步ios6和ios5旋屏問題

相信大家都知道,ios6並不支援 shouldAutorotateToInterfaceOrientation 而強制開啟項目的所有方向旋屏,會給一部分項目帶來不便,特別是rootController是橫屏的情況下,如果縱向放置會出現明顯的錯位,這點在ios5會出現,ios6系統自動檢測了,這裡簡單介紹下我的處理方法:

第一步:(這裡預設項目是橫屏的,只有部分控制器支援全方位旋轉)

設定項目方向

第二步:

在項目的AppDelegate檔案加入

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{

return UIInterfaceOrientationMaskAll;

}

告訴項目這個支援所有方向的旋轉 — 為後面的支援做鋪墊,如果項目沒聲明這個,加上第一步沒開啟所有方向,那麼後面有些旋屏會出現錯位

第三步:

在只需要橫屏的控制器內添加

// ios5下的旋屏

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

return UIInterfaceOrientationIsLandscape(interfaceOrientation);

}

// ios6下的旋屏

-(BOOL)shouldAutorotate {

return YES;

}

-(NSUInteger)supportedInterfaceOrientations {

return UIInterfaceOrientationMaskLandscape;

}

在需要全方位旋屏的控制器內添加

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

return YES;

}

 

-(NSUInteger)supportedInterfaceOrientations {

return UIInterfaceOrientationMaskAll;

}

 

-(BOOL)shouldAutorotate {

return YES;

}

這樣就很好的解決了兩個版本的全方向旋屏問題,這裡解釋不這樣處理會有什麼情況

A:開啟了項目的所有方向,即第一步的所有方向全開啟,這樣做在ios6下完成正常,但是在ios5的第一個控制器(不是開始頁面default)會出現縱屏現象(當然是你放置的位置為縱向才會出現 * _ * 這都知道的事不再多說)

B:如果沒有在AppDelegate聲明項目方向,在控制器旋屏情況下有時候會卡屏,選不過來,而且會有嚴重的錯位

原文http://www.jcsample.com/jcsample/archives_399.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.