Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 创建序列动画_Ios_Swift_Animation - Fatal编程技术网

Ios 创建序列动画

Ios 创建序列动画,ios,swift,animation,Ios,Swift,Animation,我想创建一个序列动画。 在下面的代码中,我有三个动画。我希望每个动画运行2秒,它应该遵循下面列出的动画顺序。因此,3个动画中的每一个都应该运行2秒钟。 一次只能发生一个动画,因此动画总共需要6秒 import UIKit class ViewController: UIViewController { var box = UIImageView() override func viewDidLoad() { super.viewDidLoad()

我想创建一个序列动画。 在下面的代码中,我有三个动画。我希望每个动画运行2秒,它应该遵循下面列出的动画顺序。因此,3个动画中的每一个都应该运行2秒钟。 一次只能发生一个动画,因此动画总共需要6秒

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