【发布时间】:2020-09-16 06:41:33
【问题描述】:
这是我的ViewModel
import SwiftUI
class SetGameVM: ObservableObject {
@Published var model: SetGame = SetGame()
var cards: Array<SetGame.Card> {
model.cards
}
func selectCard(card: SetGame.Card) {
model.selectCard(card: card)
}
func dealCards() {
model.dealMoreCards()
}
func reset() {
model = SetGame()
}
}
和Model
import SwiftUI
struct SetGame {
var cards: Array<Card>
mutating func selectCard(card: Card) -> Bool {
...
withAnimation {
dealMoreCards()
}
...
}
}
如果我在ViewModle 或View 中使用withAnimation,那么动画会按预期发生,否则如果我在包含一些更改的Model 中使用withAnimation,View 仍会反映这些更改,但没有动画发生。
【问题讨论】:
-
当你改变结构中的一个属性时,你会得到一个新的。我认为这就是您看不到任何动画的原因。
-
mutating函数是否仍然创建一个新函数?