我正在使用SwiftUI对视图进行动画处理。即使我没有在 .onAppear() 方法中指定,它也会在视图出现时自动执行动画。我希望只有当我点击文本时才执行动画,因此我使用了tap手势。这是我的代码:
struct ContentView: View {
var body: some View {
Text()
.scaleEffect(cardTap ? 0.9 : 1)
.gesture(LongPressGesture().onChanged { value in
self.cardTap = true
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
self.cardTap = false
UIImpactFeedbackGenerator(style: .soft).impactOccurred()
}
}
).animation(.spring(response: 0.5, dampingFraction: 0.5, blendDuration: 0))
}
}