Es gibt viele ausgezeichnete Antworten zu diesem Thema, aber dieses hat mich verwirrt.Benutzerdefinierte Segu, mehrere nicht synchronisierende Animationen
Es gibt zwei auskommentierte Zeilen, die nicht richtig zu funktionieren scheinen. Ich möchte, dass dieses benutzerdefinierte Segment sowohl gleiten und schrumpfen, so dass der Effekt für die fromVC
verschwindet in nichts und die kommen von nichts von unten.
Wenn ich jedoch versuche, beides gleichzeitig zu tun, schlägt es fehl. Entweder einzeln gut funktionieren (ein Zoom oder eine Folie), aber nicht zusammen.
class UnwindScaleSegue: UIStoryboardSegue {
override func perform() {
scaleDown()
}
func scaleDown() {
let toVC = self.destination
let fromVC = self.source
let screenHeight = UIScreen.main.bounds.size.height
toVC.view.transform = CGAffineTransform.init(translationX: 0.0, y: screenHeight)
//toVC.view.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
fromVC.view.superview?.insertSubview(toVC.view, at: 0)
UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseInOut, animations: {
//fromVC.view.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
fromVC.view.transform = CGAffineTransform.init(translationX: 0.0, y: -screenHeight)
toVC.view.transform = CGAffineTransform.identity
}, completion: { success in
fromVC.dismiss(animated: false, completion: nil)
})
}
}