0

我有一个如下流程的设计。我需要在第 5 步和第 6 步之间设置延迟 0.3 秒。我尝试了以下选项,但没有得到任何结果。

我的问题是,我怎样才能做到这一点?

注意:看动画需要 13 秒。

流动

  1. Task Handler // 用于 webService 请求
  2. Closure Handler // 用于触发 ViewController
  3. DispatchQueue.main.async // 用于更新 UI
  4. 第一部动画
  5. 第二部动画
  6. 导航到下一个屏幕

测试 1

Timer.scheduledTimer(withTimeInterval: 13, repeats: false, block: {})

测试 2

UIView.animate(withDuration: 13, animations: {
    // nothing should be happened
    self.ivSuccessMark.alpha = 0.99 // for dummy animation diff
}, completion: { (completion) in
    // navigation
})

测试 3

执行(_:with:afterDelay:)

4

2 回答 2

0

试试这个,希望对你有帮助(最多 4 秒停止所有操作)

DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(4), execute: {
    // Put your code which should be executed with a delay here
})
于 2018-06-21T12:16:14.077 回答
0

试试这个

UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: {
    // animation stuff      
}, completion: { _ in
    // do stuff once animation is complete
})
于 2018-06-21T09:06:06.423 回答