SwiftUI中实现创建反弹动画-创新互联

SwiftUI 中实现创建反弹动画?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站设计、成都做网站、网站策划、网页设计、申请域名、网页空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。

SwiftUI 中的动画

在写动画之前呢先简单回顾一下 SwiftUI 中动画的几个要点:

  • 动画是 view 发生变化时的渐变效果
  • SwiftUI 动画分为隐式动画( .animation() )与显式动画( withAnimation() )两种
  • 隐式动画是给 view 加动画,view 所有的能动画的变化都能被隐式动画影响
  • 显式动画是针对某个变化进行动画,能精准控制。
  • view 的插入和移除通过过渡( transition )来做效果,可以组合多个过渡或自定义过渡
  • 要构建自定义动画,我们需要实现一个可动画的 view 修饰器(遵守 AnimatableModier 协议)或者实现一个 GeometryEffect ,并将可动画的属性通过 animatableData 暴露出来

 反弹动画

反弹动画属于“起始点和终止点相等”的动画,所以不能够通过 SwiftUI 中内建的动画来实现(因为这个 view 从结果来看没有发生变化)

我们先来构建反弹动画修饰器的框架如下:

struct Bounce: AnimatableModifier {
  var animCount: CGFloat = 0
  var amplitude: CGFloat = 10  // 振幅
  
  var animatableData: CGFloat {
    get { animCount }
    set { animCount = newValue }
  }
  
  func body(content: Content) -> some View {
    // change view to animate
  }
}

分享标题:SwiftUI中实现创建反弹动画-创新互联
本文路径:http://myzitong.com/article/djhppo.html