[英]Stopping rotation animations in Swift UI
我希望不断旋转 Swift UI 视图,直到用户按下按钮,此时它会停止,直到再次按下它。 从像 这样的几个来源,我认为这段代码可以工作:
struct ContentView: View {
@State var go = false
let style = Animation.linear.repeatForever(autoreverses: false)
var body: some View {
VStack {
Button("Rotate") {
go.toggle()
}
Text("wheee")
.rotationEffect(.degrees(go ? 360 : 0))
.animation(style)
}
}
}
我希望“旋转”按钮开始和停止旋转。 它开始很好,但它不会停止 - 视图开始来回抽搐,越按下按钮只会变得更糟。
我尝试了一些变体,例如让“go”变量在 false 时将动画样式更改为 .none,或者让它更改旋转次数。 我知道有一些笨拙的解决方案,例如使用 CBAnimation (像这个答案)或计时器(像这个答案) 。 如果可以的话,我希望避免这些解决方案——我很好奇是否有办法使用我无法弄清楚的 SwiftUI 动画来实现这一点。
任何帮助深表感谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.