Animation 动画发行迅捷

Animation 动画发行迅捷,animation,swiftui,Animation,Swiftui,新的swiftUI开发者。我正在做一个井字游戏,当电脑赢的时候,我正在尝试制作获胜的行/列/对角线的动画。它主要起作用,除了我得到的不规则动画,其中一个盒子动画,通常是最后选择的盒子,明显比其他两个盒子更明显。旋转时,它偏离中心,因此看起来不圆,然后在动画结束时回落到中心 如果我注释掉.rotationEffect行,并将.animation(nil)替换为.animation(box.win?animation.default.repeatCount(20):.none)行,我会看到类似于.t

新的swiftUI开发者。我正在做一个井字游戏,当电脑赢的时候,我正在尝试制作获胜的行/列/对角线的动画。它主要起作用,除了我得到的不规则动画,其中一个盒子动画,通常是最后选择的盒子,明显比其他两个盒子更明显。旋转时,它偏离中心,因此看起来不圆,然后在动画结束时回落到中心

如果我注释掉
.rotationEffect
行,并将
.animation(nil)
替换为
.animation(box.win?animation.default.repeatCount(20):.none)
行,我会看到类似于.transition(.slide)效果的框的放大运动

我在视图上放置了.animation(nil)和.transition(.identity)块,这些块可能会在我要设置动画的
.rotationEffect
周围进行隔离。如果应用
.rotation3DEffect(Angle.degrees(box.win?0:180),axis:(0,1,0))
,则会出现类似的不良动画


Text("\(model.board[box.id])")
    .transition(.identity)
    .animation(nil)
    .font(.system(size: box.size))
    .foregroundColor(Color(box.color))

    .rotationEffect(Angle.degrees(box.win ? 360 : 0))
    .animation(box.win ? Animation.default.repeatCount(20) : .none)

    .onTapGesture {
        model.play(position: box.id)
     }
 }