我该如何实现类似于macOS dock上应用程序需要注意时弹跳的弹跳动画。SwiftUI似乎只有缓动曲线和弹簧,这些都不能像弹跳一样突出显示。
我已经尝试了各种弹簧动画以及缓动曲线和timingCurves的组合,但没有真正做到弹跳动画的效果。
最接近弹跳动画的是插值弹簧,但这些动画的主要问题在于它们在动画过程中会超调,而弹跳动画则不会。
我需要的是一种能够模拟重力的反弹动画,这是一种非常常见的动画效果,在许多游戏和软件中都可以找到。
struct ContentView: View {
@State var bounce = false
@State private var initialVelocity:Double = 1
@State private var damping:Double = 1
@State private var stiffness:Double = 1
var body: some View {
VStack {
Circle().fill(Color.red).frame(width:50,height:50)
.offset(y: bounce ? 0 : -80)
.animation(.interpolatingSpring(stiffness: self.stiffness, damping: self.damping, initialVelocity: self.initialVelocity))
HStack(){
Text("stiffness")
Slider(value: $stiffness, in: 0...100)
}
HStack(){
Text("damping")
Slider(value: $damping, in: 0...100)
}
HStack(){
Text("initialVelocity")
Slider(value: $initialVelocity, in: 0...100)
}
Button("Animate" ){
self.bounce.toggle()
}
}.padding(.horizontal)
}
}
我需要的是一种能够模拟重力的反弹动画,这是一种非常常见的动画效果,在许多游戏和软件中都可以找到。
interpolatingSpring(...)
的其他参数了吗?完整声明如下:static func interpolatingSpring(mass: Double = 1.0, stiffness: Double, damping: Double, initialVelocity: Double = 0.0) -> Animation
- finebel