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)
}
谁能告诉我我在下面的代码中犯了什么错误?
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)
}