[英]Landscape orientation, half view. Swift
我的應用在縱向方向上運行良好,但是當我轉到橫向模式時,我看到了白色方形槽的一半視圖。
有什么問題?
電影播放器代碼
moviePlayer = MPMoviePlayerController(contentURL: stream)
moviePlayer.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
moviePlayer.view.sizeToFit()
self.view.addSubview(moviePlayer.view)
moviePlayer.fullscreen = true
moviePlayer.controlStyle = MPMovieControlStyle.Embedded
}
當其moviePlayer
視圖的邊界發生變化時,您需要調整moviePlayer
大小。
一種解決方案是移動此行:
moviePlayer.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
進入viewWillLayoutSubviews
(如果這是視圖控制器子類)或layoutSubviews
(如果這是視圖子類)。
另一種是使用自動布局而不是手動布局。
由於您沒有使用autolayout
,因此必須在定向完成后更新視圖的框架,為此您可以使用方法
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
}
每次更改方向后都會調用此方法,您可以在此處根據需要更新或設置視域。
另一種方法是使用自動布局,它非常有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.