在SwiftUI中将完成处理程序添加到withAnimation

时间:2020-06-24 09:42:54

标签: ios swift swiftui

在swiftUI中完成动画后,我到处都想做一些动作,但是文档中没有提到SwiftUI中withAnimation的完成处理程序。有没有解决的办法。请帮助我是iOS和SwiftUI的初学者。

Grid(viewModel.cards) { card in
    CardView(card: card, theme: self.viewModel.getTheme())
        .onTapGesture {
            withAnimation(.linear(duration: 0.8)) {
                self.viewModel.choose(card: card)
            }
            self.viewModel.resetGame()
        }
        .padding(5)
    }
    HStack {
        Text("Score : \(self.viewModel.score)")
    }
}

withAnimation内的onTapGesture之后,我想运行self.viewModel.resetGame() 我不能使用AnimatableModifier,因为我在onTapGesture里面。

1 个答案:

答案 0 :(得分:0)

也许只是将您的重置函数包装到具有动画长度的asyncAfter DispatchQueue上?

DispatchQueue.main.asyncAfter(deadline: .now() + 0.8) {
self.viewModel.resetGame()
            }