在應用程序中用到MPMoviePlayerViewController時,有時須要保持應用程序爲豎屏狀態,而視頻播放器顯示爲橫屏,如何作呢?若是採用強制橫屏的方法,應用審覈的時候是不會經過的,由於該方法已經被蘋果禁止了。主要代碼以下:html
MPMoviePlayerViewController加入到它的父ViewController中經過app
CGAffineTransformMakeRotation()方法使得視頻播放器旋轉90度,這樣就能夠橫屏了,以下圖:
ide
小夥伴們!看出問題來了沒有,狀態欄顯示了倆個,這個怎麼弄呢?oop
其實在IOS7中,每一個ViewController都會帶上一個StatusBar,上面的那個StatusBar是視頻播放器帶的,視頻播放器旋轉,狀態欄也跟着旋轉。左側的StatusBar是視頻播放器的父ViewController帶的,由於父ViewController沒有旋轉,因此顯示在左側。解決這個問題就須要在顯示播放器的時候隱藏左側的StatusBar,退出播放器時顯示左側的StatusBar,具體方法以下:測試
IOS7中就須要用到以下倆個方法:spa
(1) - (BOOL)prefersStatusBarHiddenNS_AVAILABLE_IOS(7_0);.net
(2) - (void)setNeedsStatusBarAppearanceUpdateNS_AVAILABLE_IOS(7_0);code
在父ViewController中重寫- (BOOL)prefersStatusBarHidden方法,主要代碼以下:orm
(1) isHiddenStatusBar是定義的一個變量,判斷是否隱藏StatusBar視頻
(2) - (void)showStatusBar是自定義的一個方法,在須要顯示狀態欄的時候調用該方法
(3) - (void)hideStatusBar是自定義的一個方法,在須要隱藏狀態欄的時候調用該方法
至此MPMoviePlayerViewController橫屏顯示功能就實現了。這是在IOS7上測試經過的結果,IOS6尚未找出相應的方法能夠隱藏左側的狀態欄,但願有高人能告訴我答案。
此文章出自http://blog.csdn.net/chchong1234/article/details/24649083感謝博主的分享~