1. 程式人生 > >iPad橫豎屏切換中的注意點

iPad橫豎屏切換中的注意點

最近公司要搞iPad的豎屏版本,使用了PrimaryOverlay的方式顯示左側的選單欄,在實際開發過程中很是遇到了一些問題,這裡就記錄一下吧:

  1. 裝置方向不等於實際方向
  2. 部分豎屏頁面無法旋轉到橫屏
  3. Popover出現覆蓋問題

關於這幾個問題,其實也並沒有特別的麻煩,只是一時間會想不到解決思路而已。

裝置方向問題

裝置方向不能夠直接讀取[UIDevice currentDevice]的方向,因為device的方向還存在FaceUp和FaceDown,如果只使用[UIDevice currentDevice]來獲取的話,會出現識別錯誤的情況。所以正確的做法應該是先使用[UIDevice currentDevice]

獲取,如果是FaceUp或者FaceDown,在使用statusBar的方向來進行識別,最終獲取正確的方向。

部分頁面無法旋轉的問題

這個主要是有一部分頁面是從primaryController彈出的頁面,這些頁面在轉屏時就會無法旋轉。正確的做法是使用category或者共有父類,重寫present方法,判斷如果是splitController的primaryController在彈出頁面,修改為使用splitController彈出。

Popover的覆蓋問題

由於PrimaryOverlay模式下,選單頁面的出現也是一個popover,如果不進行處理的話,就會導致選單頁面覆蓋了原頁面的popover。這個問題沒有找到更好的辦法,我也只是在螢幕旋轉的時候,把當前頁面彈出的popover消失,這樣就可以避免出現覆蓋的問題。當然,還有一個辦法,就是在螢幕旋轉的時候,如果判斷有popover,把模式設定為PrimaryHidden也是可以的。

主要的問題也就這麼三個吧,簡單的說明和記錄一下。