我有两个观点:一个图像和一个填充图像的形状。一旦我翻转了形状,图像就应该显示出来。
struct DogCard: View {
@State var animationAmount = 0.0
@State var isFaceUp: Bool = false
var card: MemoryGame.Card
var body: some View {
ZStack{
let shape = RoundedRectangle(cornerRadius: 10)
if card.isFaceUp {
shape.stroke(lineWidth: 3).foregroundColor(.blue)
Image(card.content).resizable().scaledToFit().padding()
}
else {
shape.fill().foregroundColor(.blue)
}
}
.rotation3DEffect(.degrees(animationAmount), axis: (x: 0, y: 1, z: 0))
.onTapGesture {
withAnimation {
animationAmount += 180
isFaceUp.toggle()
}
}
}
}
x1c 0d1x我试图让图像显示出来,一旦形状被点击,并使翻转。
^当你点击形状时,形状会翻转(不显示图像-错误)
1条答案
按热度按时间zujrkrfu1#
在
withAnimation
中,使用card.isFaceUp.toggle()
而不是isFaceUp.toggle()
。请尝试以下操作:你的代码没有得到一个图像的原因是因为你的
if card.isFaceUp {...}
不是基于你的varisFaceUp
,它是基于card.isFaceUp
。