Ich habe einen Vollbild UIView
. Wenn ich das Telefon rotiere, verkleinert sich die Ansicht etwas (und Sie sehen den schwarzen Hintergrund) und expandiert dann wieder, um Vollbild zu sein. Es animiert im Grunde wie erwartet. Die anderen Ansichten auf dem Bildschirm animieren entsprechend.Animation bei Drehung einer bestimmten UIView verhindern
Kann ich verhindern, dass dies für eine bestimmte Ansicht geschieht? Ich möchte, dass die Vollbildansicht im Vollbildmodus ohne Animation bleibt und den schwarzen Hintergrund anzeigt, aber dass die anderen Ansichten ihre Rotation animieren.
Art von wie Apple tut es in der Kamera-App. Der "Sucher" animiert nicht seine Drehung, aber die Knöpfe tun es.
Ich habe den folgenden Code in meinem ViewController
. liveView
ist der Vollbild-UIView
erwähnt.
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
ist eine Erweiterung, die im Wesentlichen zu UIInterfaceOrientation
AVCaptureVideoOrientation
mit einer switch
Anweisung übersetzt.
Dank - Joseph
funktioniert nicht. Außerdem wird eine seltsame weiße Ansicht hinzugefügt, die ebenfalls animiert. – Joseph