我想制作一个视图/标题collaspe / expand动画,但我也希望能够在用户将手指从屏幕上移开时暂停或停止展开/折叠。
我有一个当前的实现,但动画不是很顺利。
我还会添加一些图片来更好地解释我想要做的事情。
所以第一张图片是展开后的样子。
第二张图片是当用户决定将他的手指从屏幕上移开时他应该看起来的样子,而他会慢慢滚动所以动画/视图应该停止在类似的状态。
第三张图片是折叠时的样子。
如果有人建议如何实现这一目标,我将非常感激。
答案 0 :(得分:1)
如果您的目标是iOS 10+,请使用UIViewPropertyAnimator
封装动画并允许清理和控制动画:
启动,暂停,恢复和停止动画;请参阅
UIViewAnimating
协议的方法。使用
addAnimations(_:)
和addAnimations(_:delayFactor:)
方法开始在原始动画开始后添加动画块。通过修改
fractionComplete
属性来清理暂停的动画。使用
isReversed
属性更改动画的方向。通过暂停动画并使用
continueAnimation(withTimingParameters:durationFactor:)
方法完成动画来修改部分完成动画的时间和持续时间。
您只需将触摸连接到封装动画的UIViewPropertyAnimator
对象。
有许多关于如何开始使用它的好教程,例如: this one