我有以下SwiftUI视图,我想让它重复缩放动画以模拟脉动效果。
但是,除了缩放以外,圆还在上下移动。看来原因是因为我将navigationBarHidden设置为true,这导致圆向下移动,并且移动的动画与缩放动画一起重复。删除navigationBarHidden行将解决此问题,但我想隐藏导航栏。
如何确保此处的重复动画仅适用于scalingEffect,并确保隐藏导航栏时动画不受影响?任何帮助将不胜感激!
@State var animate = false
var body: some View {
ZStack {
Circle()
.frame(width: 200, height: 200, alignment: .center)
.scaleEffect(animate ? 0.7 : 1.0, anchor: .center)
.animation(Animation.default.repeatForever(autoreverses: true))
}
.onAppear {
self.animate.toggle()
}
.navigationBarHidden(true)
}
答案 0 :(得分:1)
使动画按值显示状态,例如
Circle()
.frame(width: 200, height: 200, alignment: .center)
.scaleEffect(animate ? 0.7 : 1.0, anchor: .center)
.animation(Animation.default.repeatForever(autoreverses: true),
value: animate) // << here !!