SwiftUI 动画

SwiftUI animation

我试图在不使用 scaleEffect 修改高度的情况下仅在 x 比例下为矩形制作动画,但没有任何成功。 scaleEffect 是否仅适用于 x、y 两个维度,还是我们可以仅将其应用于一个维度?我尝试应用 scaleEffect (x,y) 但它不起作用。

Rectangle()
   .fill(Color.pink)
   .frame(width: 100, height: 100)
   .scaleEffect( self.isAnimating ?  1 : 2)
   .animation(Animation.linear(duration: 1)) 
   .onAppear {
       self.isAnimating = true
   }

您可以将 scaleEffect 与 CGSize 一起使用:

func scaleEffect(_ scale: CGSize, anchor: UnitPoint = .center) -> some View

这会给你想要的效果:

Rectangle()
    .fill(Color.pink)
    .frame(width: 100, height: 100)
    .scaleEffect(isAnimating ? CGSize(width: 2.0, height: 1.0) : CGSize(width: 1.0, height: 1.0))
    .animation(Animation.linear(duration: 1))
    .onAppear {
        isAnimating = true
    }