动画视图并中途停止

时间:2018-03-29 08:50:39

标签: ios swift animation caanimation

我想制作一个视图/标题collaspe / expand动画,但我也希望能够在用户将手指从屏幕上移开时暂停或停止展开/折叠。

我有一个当前的实现,但动画不是很顺利。

我还会添加一些图片来更好地解释我想要做的事情。

所以第一张图片是展开后的样子。

第二张图片是当用户决定将他的手指从屏幕上移开时他应该看起来的样子,而他会慢慢滚动所以动画/视图应该停止在类似的状态。

第三张图片是折叠时的样子。

如果有人建议如何实现这一目标,我将非常感激。

expanded

mid expanded

collapsed

1 个答案:

答案 0 :(得分:1)

如果您的目标是iOS 10+,请使用UIViewPropertyAnimator封装动画并允许清理和控制动画:

  

启动,暂停,恢复和停止动画;请参阅UIViewAnimating协议的方法。

     

使用addAnimations(_:)addAnimations(_:delayFactor:)方法开始在原始动画开始后添加动画块。

     

通过修改fractionComplete属性来清理暂停的动画。

     

使用isReversed属性更改动画的方向。

     

通过暂停动画并使用continueAnimation(withTimingParameters:durationFactor:)方法完成动画来修改部分完成动画的时间和持续时间。

您只需将触摸连接到封装动画的UIViewPropertyAnimator对象。

有许多关于如何开始使用它的好教程,例如: this one