2016-02-29 81 views
1

我有一個UIView實際上是YTPlayerViewyoutube-ios-sdk如何使UIView全屏當用戶將其設備從縱向旋轉到橫向模式時

當設備向左或向右旋轉時,當設備旋轉回肖像模式(如官方YouTube應用程序中)時,我需要將其設爲全屏模式並將其恢復爲非全屏模式。

我該如何實現這樣的行爲?

我在YTPlayerView的界面上看不到任何setFullScreenMode函數。

+0

你有沒有嘗試過的視圖的框架設置爲UIScreen的幀大小?不知道它是否會工作 – hola

回答

0

確保您試圖在設備旋轉時修改視圖的框架?

這是我做的:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { 
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; 

    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) 
    { 

    } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) 
    { 
     UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 
     switch (orientation) { 
      case UIInterfaceOrientationPortrait: 

       break; 
      case UIInterfaceOrientationLandscapeLeft: 
      case UIInterfaceOrientationLandscapeRight: 
       [self.testView setFrame:CGRectMake(0, 0, size.width, size.height)]; 
       break; 
      default: 
       break; 
     } 
    }]; 
} 
+0

感謝您的答案,但不幸的是它不工作 - 'YTPlayerView'仍然有相同的大小(屏幕的一半) – FrozenHeart

+0

看來,另一個視圖阻止它(可能是因爲佈局約束) - http://i.imgur.com/GRn2MCz.png。我能做什麼? – FrozenHeart

+0

我在這兩個設備和模擬器上都成功了。 (YTPlayerView當然有佈局約束)。 你是否實現了supportedInterfaceOrientations和shouldAutorotate? 這是一個簡單的視頻。 https://www.youtube.com/watch?v=lyjD4V-kGOQ&feature=youtu.be –

0

請確保您的設備可以能夠旋轉顯示器(人像方向鎖定應關閉)。

+0

我在模擬器上測試我的應用程序,所以是的,它可以旋轉顯示 – FrozenHeart

0

這爲我工作,在Xcode 9.2和迅速的4

var videoView: UIView! 
var playerLayer: AVPlayerLayer! 

if UIDeviceOrientationIsLandscape(UIDevice.current.orientation){ 
     let screenSize = UIScreen.main.bounds 
     let screenWidth = screenSize.width 
     let screenHeight = screenSize.height 
     videoView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: screenHeight) 
     playerLayer.frame = videoView.bounds 
    } 
相關問題