我想知道 Apple 是如何实现其出色的自定义交互式过渡系统的,我认为创建类似的东西作为实验应该很有趣。
这是我对这个“问题”的看法。
开发人员创建了他需要的动画,UIView animationWithDuration
这个动画被称为感谢animatedTransition
:
-(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext{
... Perform configurations, get data about from/to controllers.
[UIView animateWithDuration:self.presentationDuration
delay:0.0f
usingSpringWithDamping:0.4f
initialSpringVelocity:6.0f
options:UIViewAnimationOptionCurveEaseIn animations:^{
toViewController.view.center = aValueFromPreviousConfig;
} completion:^(BOOL finished) {
[transitionContext completeTransition:YES];
}];
}
我的好奇心从这里开始。从这个定义出发,Apple 如何执行交互式过渡?
他们如何获取此函数中定义的动画并将其转换为交互式动画?
我想Apple使用了一些新的UIView Key-Frame Animations API,但我找不到一种方法来匹配在animatedTransition函数中编写的代码(可以是任何代码)并且是动画完成的任意百分比状态。
您对他们如何实现它有一些想法吗?
(请......不要像“你能在不知道它是如何工作的情况下使用这个 API 吗?”这样的小问题)。