有人可以告诉我我在以下代码中犯了什么错误吗?
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
,因此您要用它来动画化转换[[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) }