私はフルスクリーンUIView
を持っています。電話機を回転させると、ビューが少し縮小し(黒い背景が表示されます)、再びフルスクリーンになるように拡大されます。基本的には期待どおりのアニメーションです。 画面上の他のビューも同様にアニメートされます。特定のUIViewの回転時のアニメーションを防止する
特定のビューでこれが行われないようにすることはできますか? フルスクリーン表示は、黒い背景を明らかにするアニメーションなしでフルスクリーンを維持するだけで、他のビューは回転をアニメーションします。
カメラアプリでAppleがどのようにしているかのような種類です。 「ビューファインダ」は回転をアニメーション化しませんが、ボタンは機能しません。
私はViewController
に次のコードを書いています。 liveView
は全画面UIView
です。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animateAlongsideTransition(in: self.liveView, animation: { (context) in
if let connection = (self.liveView.layer as! AVCaptureVideoPreviewLayer).connection {
connection.videoOrientation = AVCaptureVideoOrientation(ui: UIApplication.shared.statusBarOrientation)
}
}, completion: nil)
}
AVCaptureVideoOrentation
基本的にswitch
文でAVCaptureVideoOrientation
にUIInterfaceOrientation
を変換する拡張機能です。
おかげ - ジョセフ
は動作しません。さらに、アニメーションを開始する奇妙な白いビューを追加します。 – Joseph