UI 中的动画
在写动画之前呢先简单回顾一下 中动画的几个要点:
- 动画是 view 发生变化时的渐变效果
- SwiftUI 动画分为隐式动画( .animation() )与显式动画( withAnimation() )两种
- 隐式动画是给 view 加动画,view 所有的能动画的变化都能被隐式动画影响
- 显式动画是针对某个变化进行动画,能精准控制。
- view 的插入和移除通过过渡( transition )来做效果,可以组合多个过渡或自定义过渡
- 要构建自定义动画,我们需要实现一个可动画的 view 修饰器(遵守 AnimatableModier 协议)或者实现一个 GeometryEffect ,并将可动画的属性通过 animatableData 暴露出来
反弹动画
反弹动画属于“起始点和终止点相等”的动画,所以不能够通过 SwiftUI 中内建的动画来实现(因为这个 view 从结果来看没有发生变化)
我们先来构建反弹动画修饰器的框架如下:
发表评论