Swift 中的 UIView 动画

UIView Animationn in Swift

谁能告诉我我在下面的代码中犯了什么错误?

 func animateView(view: UIView){
       view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
        UIView.animate(withDuration: 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .curveEaseInOut, animations: {
            self.view.transform = .identity
        }, completion: nil)
    }

我想要这样的动画。我在一些博客上读到了它,但我不知道如何使用它。 提前致谢

错误在于第一行,您将 transform 的比例设置为 (1, 1):

view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)

CGAffineTransform(scaleX: 1.0, y: 1.0)表示比例因子为1的比例,即正常比例。这等同于 .identity,因此您需要它来动画转换 恒等变换 恒等变换。

我猜您可能认为 (1, 1) 是指 1 x 1 像素?

您最初应该将比例设置为 (0, 0)

view.transform = CGAffineTransform(scaleX: 0, y: 0)

你的第二个错误是你在动画 self.view,而不是参数 view。这可能是一个错字。

所以你的整个方法看起来像:

func animateView(view: UIView){
   view.transform = CGAffineTransform(scaleX: 0, y: 0)
    UIView.animate(withDuration: 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .curveEaseInOut, animations: {
        view.transform = .identity
    }, completion: nil)
}