0
YouTubeのようなコントローラを実装したいと思います。ここでは、コントローラの上部がビデオを再生し、下部が静止しています。ユーザーがデバイスを回転させるとトップが回転するだけです。YouTubeのように、風景を回転させながらビデオコントローラを実装する方法
私はこのコードでそれを実装しようとした:
@IBOutlet weak var myView: UIView!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NotificationCenter.default.addObserver(self, selector: #selector(self.rotated), name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil)
}
@objc func rotated() {
if UIDeviceOrientationIsLandscape(UIDevice.current.orientation) {
UIView.animate(withDuration: 0.9, animations: {
self.myView.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2)
let rect = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
self.myView.frame = rect
})
}
}
そして、私はこの結果を持っている:
問題が間違った側に縦向きとステータスバーにまだコントローラです。
私はこのことがより良い実装だと思います。
してください、答えのため
これはあなたの問題のためのシンプルなソリューションです
感謝を助けて! しかし、このソリューションは、コントローラ内のすべてのビューを回転します。 私のgif –
@ SergeiRに示されているように、プレイヤーのビューだけを回転させる必要があります。他のすべてのビューをそのまま維持し、1つのビューのみを回転することが可能です。しかし、ステータスバーを修正することはできません。それは肖像画のままです。コードから変更することはできません。私の提案は、ランドスケープモードでステータスバーを非表示にすることです。それはyoutubeがやっていることです。あなたがそれで大丈夫なら、私はコードを更新することができます。 – Bishan