gpt4 book ai didi

ios - 在 swift3 中结合平移、alpha 和缩放动画

转载 作者:可可西里 更新时间:2023-11-01 06:19:28 26 4
gpt4 key购买 nike

我完全是 iOS Swift 开发的新手,我尝试在单个动画中组合三个参数,但我没有成功。

我认为解决方案就在这里 - Apple Dev Core Animation Programming Guide通过对动画进行分组,但作为初学者,经过大量互联网研究后,我找不到我要找的东西。

您如何看待我的代码以及对您而言兼顾性能和稳定性的最佳解决方案。

我想指出的是,这个动画的目的是创建一个动画闪屏。还有其他元素 (UIImage) 将用于制作动画。

这是我的代码:

    override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

logoImg.alpha = 0
logoImg.transform = CGAffineTransform(translationX: 0, y: -200)
logoImg.transform = CGAffineTransform(scaleX: 0, y: 0)

}

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

UIView.animate(withDuration: 1.0, delay: 1.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 10, options: [.curveEaseOut], animations: {

self.logoImg.transform = CGAffineTransform(translationX: 0, y: 0)
self.logoImg.transform = CGAffineTransform(scaleX: 1, y: 1)
self.logoImg.alpha = 1

}, completion: nil)
}

最佳答案

根据我所看到的情况,您想要预设动画并将其翻译回来。在那种情况下,我会这样做。

self.logoImg.transform = CGAffineTransform(translationX: 0, y: -200).concatenating(CGAffineTransform(scaleX: 0, y: 0))
self.logoImg.alpha = 0

UIView.animate(withDuration: 1.0, delay: 1.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 10, options: [.curveEaseOut], animations: {
self.logoImg.transform = .identity
self.logoImg.alpha = 1
}, completion: nil)

我想你可能没有看到所有的动画,所以尝试从 0.5 开始缩放

self.logoImg.transform = CGAffineTransform(translationX: 0, y: -200).concatenating(CGAffineTransform(scaleX: 0.5, y: 0.5))
self.logoImg.alpha = 0

UIView.animate(withDuration: 1.0, delay: 1.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 1, options: [.curveEaseOut], animations: {
self.logoImg.transform = .identity
self.logoImg.alpha = 1
}, completion: nil)

这里的关键是动画正在动画化原始身份。希望这有帮助

关于ios - 在 swift3 中结合平移、alpha 和缩放动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com