Ios UIPercentDrivenInteractivateTransfion与CABASICanization
将手势驱动的UIPercentDrivenInteractiveTransition与CABasicAnimation(或任何其他CAAnimation)一起使用时,在完成InteractiveTransition后,动画会跳到最终位置,而不是像使用UIView块动画那样平滑地设置动画。我试图弄清楚如何在使用动画时在完成InteractiveTransition后平滑地设置动画 我现在已经花了一整天在这上面了。在任何地方似乎都没有提到使用自定义VC转换的动画,每个人都提到基于UIView块的动画 我创建了一个小样本项目来演示这个问题 感谢所有花时间看它的人。非常感谢。解决方案 事实证明,解决方案是操纵图层开始时间。我将在下面更深入地解释解决方案。有两种解决方案,一种是使用Ios UIPercentDrivenInteractivateTransfion与CABASICanization,ios,caanimation,Ios,Caanimation,将手势驱动的UIPercentDrivenInteractiveTransition与CABasicAnimation(或任何其他CAAnimation)一起使用时,在完成InteractiveTransition后,动画会跳到最终位置,而不是像使用UIView块动画那样平滑地设置动画。我试图弄清楚如何在使用动画时在完成InteractiveTransition后平滑地设置动画 我现在已经花了一整天在这上面了。在任何地方似乎都没有提到使用自定义VC转换的动画,每个人都提到基于UIView块的动画
UIPercentDrivenTransition
子类,另一种是实现UIViewControllerInteractiveTransitioning
协议。自定义UIViewControllerInteractiveTransitioning位于主分支上,UIPercentDrivenTransition实现位于UIPercentDrivenTransitionImplementation分支上
解释
UIPercentDrivenTransition使用animateTransition:中的动画来实现
updateInteractiveTransition:
。我猜他们只是从startinteractivatetransition:
调用animateTransition:
,然后将层(可能是容器视图层)速度设置为0.0,并操纵其时间偏移量。这使他们能够自动地前后移动过渡。这将为UIView动画实现这一点。CAAnimations的问题是它们的开始时间
,时间偏移
,速度
属性由于某些原因设置不正确。如果将这些设置为合理的值,则可以在containerView中来回移动所有动画内容。我已经创建了SCPercentDrivenTransition
开关,它是UIPercentDrivenTransition
的替代品。您只需从手势识别器的动作调用中覆盖animateTransition:和call HandleTesture:。检查报告。文件丢失了。项目未编译。感谢您花时间查看。我修复了回购协议,现在应该都好了。有没有更好的方法解决这个问题?一个没有子类化UIPercentDrivenInteractiveTransition
或设置自己的UIViewControllerInteractiveTransition
。这是一个很好的解释。谢谢我想你可能是世界上唯一一个实现UIViewControllerInteractiveTransition并演示如何在标准百分比驱动转换之外使用它的人。所以祝福你!