我有一個UIView
實際上是YTPlayerView
從youtube-ios-sdk。如何使UIView全屏當用戶將其設備從縱向旋轉到橫向模式時
當設備向左或向右旋轉時,當設備旋轉回肖像模式(如官方YouTube應用程序中)時,我需要將其設爲全屏模式並將其恢復爲非全屏模式。
我該如何實現這樣的行爲?
我在YTPlayerView
的界面上看不到任何setFullScreenMode
函數。
我有一個UIView
實際上是YTPlayerView
從youtube-ios-sdk。如何使UIView全屏當用戶將其設備從縱向旋轉到橫向模式時
當設備向左或向右旋轉時,當設備旋轉回肖像模式(如官方YouTube應用程序中)時,我需要將其設爲全屏模式並將其恢復爲非全屏模式。
我該如何實現這樣的行爲?
我在YTPlayerView
的界面上看不到任何setFullScreenMode
函數。
確保您試圖在設備旋轉時修改視圖的框架?
這是我做的:
- (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;
}
}];
}
感謝您的答案,但不幸的是它不工作 - 'YTPlayerView'仍然有相同的大小(屏幕的一半) – FrozenHeart
看來,另一個視圖阻止它(可能是因爲佈局約束) - http://i.imgur.com/GRn2MCz.png。我能做什麼? – FrozenHeart
我在這兩個設備和模擬器上都成功了。 (YTPlayerView當然有佈局約束)。 你是否實現了supportedInterfaceOrientations和shouldAutorotate? 這是一個簡單的視頻。 https://www.youtube.com/watch?v=lyjD4V-kGOQ&feature=youtu.be –
這爲我工作,在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
}
你有沒有嘗試過的視圖的框架設置爲UIScreen的幀大小?不知道它是否會工作 – hola