【问题标题】:Wait/Delay in Xcode (Swift)Xcode 中的等待/延迟 (Swift)
【发布时间】:2015-11-25 19:18:59
【问题描述】:

如何在 Xcode 中添加延迟?

self.label1.alpha = 1.0
//delay
self.label1.alpha = 0.0

我想让它等待大约 2 秒。我已阅读有关 time_dispatch 和导入 darwin 库的信息,但我无法使其工作。那么有人可以一步一步正确解释吗?

【问题讨论】:

标签: xcode swift delay


【解决方案1】:

对于 Swift 5:

self.label1.alpha = 1.0 

let delay : Double = 2.0 //delay time in seconds
let time = DispatchTime.now() + delay
DispatchQueue.main.asyncAfter(deadline:time){
    // After 2 seconds this line will be executed
    self.label1.alpha = 0.0
}

这对我有用。

参考:Delay using DispatchTime.now() + float?

【讨论】:

    【解决方案2】:

    这是另一个可行的选项 -

    import Darwin sleep(2)

    然后,你可以使用 sleep 函数,它以秒数为参数。

    【讨论】:

    • 谢谢,BK15。对于它的价值,我不需要导入 Darwin,因为我已经在导入 Foundation。我正在使用 Swift 3、iOS 10 和 Xcode 8。
    • 这比我发现使用异步调度队列功能(在某些设置中不起作用)的重复答案(对于重复问题)要好得多。
    【解决方案3】:

    您只需编写以下代码:

    self.label1.alpha = 1.0    
    
    let delay = 2 * Double(NSEC_PER_SEC)
    let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
    dispatch_after(time, dispatch_get_main_queue()) {
        // After 2 seconds this line will be executed            
        self.label1.alpha = 0.0
    }
    

    '2' 是您要等待的秒数

    问候

    【讨论】:

      【解决方案4】:

      可能会更好地为这个使用块:

      self.label1.alpha = 1.0;
      
      UIView animateWithDuration:2.0 animations:^(void) {
          self.label1.alpha = 0.0;
      }];
      

      【讨论】:

        猜你喜欢
        • 2015-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多