iOS設置豎屏,播放視頻可以任性旋轉的解決方法,親測可用


  之前在網上找了很多方法,都是強制橫屏,但是如果設備關閉旋轉鎖定,強制橫屏后把設備豎立起來,播放器也會跟着豎過來,但是就回不去了。現在項目要求讓app默認都是豎屏,只有在全屏播放的時候可以自由旋轉,於是在找了很多資料后茅塞頓開,具體思路就是設置app全局支持的設備方向為全部支持,然后針對每個控制器單獨設置支持方向(這里可以寫個分類),iOS會自動取全局和當前控制器的支持方向交集,所以只需要兩部簡單操作即可:

1.在AppDelegate.m文件中添加以下代碼

/**
 *  設置全局支持方向,然后在控制器中單獨配置各自的支持方向
 */
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskAll;
}

2.添加分類UIViewController+Category.m

-(UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    //設置只允許視頻播放界面可以旋轉,其他只能豎屏
    if ([self isKindOfClass:NSClassFromString(@"AVFullScreenViewController")]) {
        return UIInterfaceOrientationMaskAll;
    }else{
        return UIInterfaceOrientationMaskPortrait;
    }
}

但這樣還有個小問題,就是在退出全屏的時候狀態欄消失了,這里暫時還是用的退出全屏的通知,在收到通知后重新設置下顯示狀態欄

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endFullScreen) name:UIWindowDidBecomeHiddenNotification object:nil];//退出全屏

// 退出全屏
-(void)endFullScreen {
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}

 

歡迎大家對以上方法指正,謝謝~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM