最近公司要搞iPad的豎屏版本匈挖,使用了PrimaryOverlay的方式顯示左側(cè)的菜單欄苍鲜,在實際開發(fā)過程中很是遇到了一些問題思灰,這里就記錄一下吧:
- 設(shè)備方向不等于實際方向
- 部分豎屏頁面無法旋轉(zhuǎn)到橫屏
- Popover出現(xiàn)覆蓋問題
關(guān)于這幾個問題,其實也并沒有特別的麻煩坡贺,只是一時間會想不到解決思路而已官辈。
設(shè)備方向問題
設(shè)備方向不能夠直接讀取[UIDevice currentDevice]
的方向箱舞,因為device的方向還存在FaceUp和FaceDown遍坟,如果只使用[UIDevice currentDevice]
來獲取的話,會出現(xiàn)識別錯誤的情況晴股。所以正確的做法應該是先使用[UIDevice currentDevice]
獲取愿伴,如果是FaceUp或者FaceDown,在使用statusBar的方向來進行識別电湘,最終獲取正確的方向隔节。
部分頁面無法旋轉(zhuǎn)的問題
這個主要是有一部分頁面是從primaryController彈出的頁面,這些頁面在轉(zhuǎn)屏時就會無法旋轉(zhuǎn)寂呛。正確的做法是使用category或者共有父類怎诫,重寫present方法,判斷如果是splitController的primaryController在彈出頁面贷痪,修改為使用splitController彈出幻妓。
Popover的覆蓋問題
由于PrimaryOverlay模式下,菜單頁面的出現(xiàn)也是一個popover劫拢,如果不進行處理的話肉津,就會導致菜單頁面覆蓋了原頁面的popover。這個問題沒有找到更好的辦法舱沧,我也只是在屏幕旋轉(zhuǎn)的時候妹沙,把當前頁面彈出的popover消失,這樣就可以避免出現(xiàn)覆蓋的問題熟吏。當然距糖,還有一個辦法玄窝,就是在屏幕旋轉(zhuǎn)的時候,如果判斷有popover悍引,把模式設(shè)置為PrimaryHidden也是可以的哆料。
主要的問題也就這么三個吧,簡單的說明和記錄一下吗铐。