我正在尝试制作一个动画,其中硬币翻转并向上移动然后返回并在按钮单击后停止。使用此代码,它会上下移动,但在动画结束后会捕捉到顶部位置。我知道这一定是因为“.offset”,但我不知道有什么办法。Youtube并没有太大帮助。
@State private var isClicked : Bool = false
Image(coins[numbers[0]])
.resizable()
.scaledToFit()
.scaleEffect(0.6)
.rotation3DEffect(isClicked ?
.init(degrees: 1080) : .init(degrees: 0),
axis: (x: 10.0, y: 0.0, z: 0.0))
.animation(Animation.easeInOut.repeatCount(2, autoreverses: true)
.speed(0.5))
.offset(y: isClicked ? -200 : 0)
Button(action: {self.animation()}, label: {
Text("FLIP!")
.aspectRatio(contentMode: .fit)
.foregroundColor(Color.black)
})
func animation() {
self.isClicked.toggle()
}