Ios 创建序列动画
我想创建一个序列动画。 在下面的代码中,我有三个动画。我希望每个动画运行2秒,它应该遵循下面列出的动画顺序。因此,3个动画中的每一个都应该运行2秒钟。 一次只能发生一个动画,因此动画总共需要6秒Ios 创建序列动画,ios,swift,animation,Ios,Swift,Animation,我想创建一个序列动画。 在下面的代码中,我有三个动画。我希望每个动画运行2秒,它应该遵循下面列出的动画顺序。因此,3个动画中的每一个都应该运行2秒钟。 一次只能发生一个动画,因此动画总共需要6秒 import UIKit class ViewController: UIViewController { var box = UIImageView() override func viewDidLoad() { super.viewDidLoad()
import UIKit
class ViewController: UIViewController {
var box = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
view.addSubview(box)
box.frame = CGRect(x: 100, y: 100, width: 100, height: 200)
box.backgroundColor = .orange
UIView.animate(withDuration: 2.0, animations: {
self.box.transform = self.box.transform.rotated(by: (.pi / 2))
self.box.transform = self.box.transform.rotated(by: (2 * .pi / 3))
self.box.transform = self.box.transform.rotated(by: (6 * .pi / 5))
})
}
您可以使用完成处理程序指定在执行动画时应发生的情况:
UIView.animate(withDuration: 2.0, animations: {
self.box.transform = self.box.transform.rotated(by: (.pi / 2))
}, completion: {_ in
UIView.animate(withDuration: 2.0, animations: {
self.box.transform = self.box.transform.rotated(by: (2 * .pi / 3))}, completion: {_ in
UIView.animate(withDuration: 2.0, animations: {
self.box.transform = self.box.transform.rotated(by: (6 * .pi / 5))
})
})
})