在SwiftUI中停止动画.repeatForever
,可以通过使用.onAppear
和.onDisappear
修饰符来实现。以下是一个完整的示例代码:
import SwiftUI
struct ContentView: View {
@State private var isAnimating = true
var body: some View {
Circle()
.frame(width: 100, height: 100)
.foregroundColor(.blue)
.scaleEffect(isAnimating ? 1.5 : 1.0)
.animation(Animation.easeInOut(duration: 1.0).repeatForever())
.onAppear {
isAnimating = true
}
.onDisappear {
isAnimating = false
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在上面的代码中,我们使用了@State
属性包装器来创建一个布尔类型的状态变量isAnimating
,用于控制动画的开始和停止。当视图出现时,.onAppear
闭包会将isAnimating
设置为true
,从而启动动画。当视图消失时,.onDisappear
闭包会将isAnimating
设置为false
,从而停止动画。
动画效果是通过.animation
修饰符来定义的。在示例中,我们使用了Animation.easeInOut(duration: 1.0).repeatForever()
来创建一个持续时间为1秒的缓入缓出动画,并将其设置为无限重复。
这是一个简单的示例,你可以根据自己的需求进行修改和扩展。关于SwiftUI的更多信息,你可以参考腾讯云的官方文档:SwiftUI开发指南。
领取专属 10元无门槛券
手把手带您无忧上云