gpt4 book ai didi

ios - UIViewControllerAnimatedTransitioning : multiple calls to interruptibleAnimator?

转载 作者:搜寻专家 更新时间:2023-11-01 07:11:11 27 4
gpt4 key购买 nike

我刚刚花了最后几个小时来追踪一个恰好位于转换驱动程序对象中的错误,多次调用 interruptibleAnimator 方法,其中:

  1. 一个 UIViewPropertyAnimator 完成闭包包含对 [unowned self] 的引用,以使用 self.context.completeTransition(true )
  2. 实现 UIViewControllerAnimatedTransitioning 并且是 UINavigationControllerDelegate 的转换 Controller 通过其 animate 方法传递上下文

    extension 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
    }

除非我在这里遗漏了一些非常基本的东西,否则我不知道为什么转换 Controller 会多次调用 interruptibleAnimator 方法。

我的结构受到 Apple 展示的启发 here in their WWDC 2016 talk ;如果您下载、放置断点并启动他们的 Photo Transitioning 应用程序,您会亲眼看到在他们的案例中,此方法被调用两次以实现相同的转换。

谁能告诉我我是在追鬼还是这是一种合法的怪异行为?

最佳答案

Apple 在 UIViewControllerAnimatedTransitioning 的“标题文档”中声明:

/// A conforming object implements this method if the transition it creates can
/// be interrupted. For example, it could return an instance of a
/// UIViewPropertyAnimator. It is expected that this method will return the same
/// instance for the life of a transition.
@available(iOS 10.0, *)
optional public func interruptibleAnimator(using transitionContext: UIViewControllerContextTransitioning) -> UIViewImplicitlyAnimating

WWDC Session 2016 的第 29:34 分钟也有同样的陈述。 . 27:33 分钟幻灯片上的示例实现似乎具有误导性/错误。

它被多次调用的原因超出了我的知识。

关于ios - UIViewControllerAnimatedTransitioning : multiple calls to interruptibleAnimator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com