iPad橫豎屏切換中的注意點
阿新 • • 發佈:2019-01-02
最近公司要搞iPad的豎屏版本,使用了PrimaryOverlay的方式顯示左側的選單欄,在實際開發過程中很是遇到了一些問題,這裡就記錄一下吧:
- 裝置方向不等於實際方向
- 部分豎屏頁面無法旋轉到橫屏
- Popover出現覆蓋問題
關於這幾個問題,其實也並沒有特別的麻煩,只是一時間會想不到解決思路而已。
裝置方向問題
裝置方向不能夠直接讀取[UIDevice currentDevice]
的方向,因為device的方向還存在FaceUp和FaceDown,如果只使用[UIDevice currentDevice]
來獲取的話,會出現識別錯誤的情況。所以正確的做法應該是先使用[UIDevice currentDevice]
部分頁面無法旋轉的問題
這個主要是有一部分頁面是從primaryController彈出的頁面,這些頁面在轉屏時就會無法旋轉。正確的做法是使用category或者共有父類,重寫present方法,判斷如果是splitController的primaryController在彈出頁面,修改為使用splitController彈出。
Popover的覆蓋問題
由於PrimaryOverlay模式下,選單頁面的出現也是一個popover,如果不進行處理的話,就會導致選單頁面覆蓋了原頁面的popover。這個問題沒有找到更好的辦法,我也只是在螢幕旋轉的時候,把當前頁面彈出的popover消失,這樣就可以避免出現覆蓋的問題。當然,還有一個辦法,就是在螢幕旋轉的時候,如果判斷有popover,把模式設定為PrimaryHidden也是可以的。
主要的問題也就這麼三個吧,簡單的說明和記錄一下。