是否可以控制 NSViewController 转换的持续时间和计时功能?

Is it possible to control the duration and timing function of a NSViewController transition?

我正在使用 NSViewController's transition(from:to:options:completionHandler:). It is working beautifully, but now I am wanting more control (like a custom timing function).

这可能吗?还是需要另一种方法来在视图控制器之间进行转换?

是的,如果您在动画组中捕获它,则可以修改动画上下文:

NSAnimationContext.runAnimationGroup({ context in
    context.duration = 3

    parentController.transition(from: childA, to: childB: options: yourOptions, completionHandler: yourCompletionHandler)
})

不幸的是,修改上下文的 timingFunction 属性 似乎没有任何作用。


对于 OS X 10.11 及更早版本,您可以使用此垫片: https://gist.github.com/BenLeggiero/63f84d5f7fd8c9b3c9501d1b68110983