Ich habe gerade die letzten paar Stunden einen Fehler aufzuspüren, die in einem Übergangstreiberobjekt befindet passiert ist, wo die interruptibleAnimator
Methode mehrmals genannt wurde, wo:UIViewControllerAnimatedTransitioning: mehrere Aufrufe von interruptibleAnimator?
- ein
UIViewPropertyAnimator
Abschluss Schließung eine Referenz enthalten um den Übergang[unowned self]
Zusammenhang mitself.context.completeTransition(true)
der Übergangssteuerung durch die Übergangssteuerung weitergegeben zu vervollständigen, die
UIViewControllerAnimatedTransitioning
und einUINavigationControllerDelegate
, geleitet, um den Rahmen über seineanimate
Methode implementiertextension NavigationTransitionController: UIViewControllerAnimatedTransitioning { func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval { return transitionDuration } func animationEnded(_ transitionCompleted: Bool) { // Clean up our helper object and any additional state transitionDriver = nil } func animateTransition(using transitionContext: UIViewControllerContextTransitioning) { transitionDriver = TransitionDriver(context: transitionContext, duration: transitionDuration) interruptibleAnimator(using: transitionContext).startAnimation() } func interruptibleAnimator(using transitionContext: UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating { return transitionDriver!.transitionAnimator }
Wenn ich etwas sehr einfach hier fehle, ich habe keine Ahnung, warum die Übergangssteuerung mehr als 1 Aufruf der interruptibleAnimator
Methode machen würde.
Meine Struktur wurde von dem inspiriert, was Apple präsentierte here in their WWDC 2016 talk; Wenn Sie einen Haltepunkt herunterladen und die Photo Transitioning-App starten, können Sie selbst sehen, dass diese Methode für denselben Übergang zweimal aufgerufen wird.
Könnte mir jemand aufklären, ob ich einen Geist jage oder ob das ein echt seltsames Verhalten ist?