Swift中的UIView Animationn

问题描述 投票:-1回答:1

有人可以告诉我我在以下代码中犯了什么错误吗?

 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)
    }

enter image description here

我想要这样的动画。我在某个博客上阅读了它,但没有得到如何使用的信息。在此先感谢

ios swift uiviewanimation uianimation
1个回答
0
投票

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

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

CGAffineTransform(scaleX: 1.0, y: 1.0)是指比例因子为1的比例,即正常比例。这等效于.identity,因此您要用它来动画化转换[[from恒等变换to恒等变换。

我猜您可能认为(1, 1)表示1像素乘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) }

© www.soinside.com 2019 - 2024. All rights reserved.