CGRect 放大动画在 Xcode 10 中不起作用?

CGRect scale up animation not working in Xcode 10?

我正在学习教程(即使用 ios 8,但我使用的是 ios 12),该教程教我通过使用 CGRect 放大图像来制作动画。我完全按照使用覆盖功能 viewDidLayoutSubviewsviewDidAppear,但是当我打开应用程序时我的模拟器没有显示图像尺寸增加。

    override func viewDidLayoutSubviews() {

        pandaImage.frame = CGRect(x: 100, y: 20, width: 0, height: 0)

    }

    override func viewDidAppear(_ animated: Bool) {

        UIView.animate(withDuration: 1, animations: { () -> Void in

            self.pandaImage.frame = CGRect(x: 5, y: 20, width: 400, height: 500)

        })

    }

我希望图像首先非常小,因此按比例缩小,因此宽度和高度应为 0。然后当我打开应用程序时,图像应自行调整大小,宽度为 400,高度为 500。实际结果是图像本身没有显示,所以我在模拟器上得到一个空白界面。

您可以使用 CGAffineTransform 实现缩放效果:

Grow/decrease动画:

UIView.animate(withDuration: 1, animations: {
    self.pandaImage?.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
}) { (_ finished: Bool) in
    UIView.animate(withDuration: 1, animations: {
        self. pandaImage?.transform = CGAffineTransform(scaleX: 1, y: 1)
    })
}