加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 如何在Swift中开始下一个动画之前等待一个动画完成?

发布时间:2020-12-14 19:37:01 所属栏目:百科 来源:网络整理
导读:如何在 Swift中下一个动画开始之前等待一个动画完成?我一直在搞乱如果animation.animationDidStop … {},但它不会起作用. 这是我目前的一些代码: class ViewController: UIViewController {@IBOutlet weak var purpleRing: UIImageView!@IBOutlet weak var
如何在 Swift中下一个动画开始之前等待一个动画完成?我一直在搞乱如果animation.animationDidStop … {},但它不会起作用.

这是我目前的一些代码:

class ViewController: UIViewController {
@IBOutlet weak var purpleRing: UIImageView!
@IBOutlet weak var beforeCountdownAnimation: UIImageView!

var imageArray = [UIImage]()
var imageArray2 = [UIImage]()

override func viewDidLoad() {
    super.viewDidLoad()

    for e in -17...0 {
    let imageName2 = "(e)"
        imageArray2.append(UIImage(named: imageName2)!)
    }

    for t in 1...97 {
        let imageName = "(t)"
        imageArray.append(UIImage(named: imageName)!)
    }
}

func startAnimation() -> Void {
    purpleRing.animationImages = imageArray
    purpleRing.animationDuration = 5.0
    purpleRing.startAnimating()
}

func startAnimation2() -> Void {
    beforeCountdownAnimation.animationImages = imageArray2
    beforeCountdownAnimation.animationDuration = 1.0
    beforeCountdownAnimation.startAnimating()
}

@IBAction func startAnimations(sender: AnyObject) {
    startAnimation()
    startAnimation2()
}

解决方法

嗯,可能之前回答过,但你可以使用Grand Central Dispatch dispatc_aysnc.

我们的想法是,您知道动画持续时间,因此您可以使用它来告诉GDC何时执行下一个代码.所以类似于:

// call animation 1,which you specified to have 5 second duration
CGFloat animation1Duration = 5.0;
CGFloat animation2Duration = 7.0;

playAnimation1WithDuration(animation1Duration);

// calling second animation block of code after 5.0 using GDC
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,Int64(animation1Duration * Double(NSEC_PER_SEC))),dispatch_get_main_queue(),{ () -> Void in

    print("5.0 has passed");

    // call second animation block here
    playAnimation2WithDuration(animation2Duration);

});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读