Xcode Swift Ios 应用程序:添加延迟

Xcode Swift Ios App: Adding delay

我正在开发一个简单的问答游戏,我想给游戏添加一些延迟,现在当我 select 回答时,游戏会立即进入下一个答案,现在我想更改颜色按钮 0.1 秒,然后加载下一个问题

我尝试了睡眠功能,但它只增加了延迟而没有颜色变化,而且我不能选择小于一秒的时间间隔,因为它接受整数作为值

这是代码

sender.backgroundColor = UIColor.greenColor()
sleep(1)
sender.backgroundColor = UIColor.whiteColor()

我必须用什么代替睡眠来获得我想要的东西?

谢谢

我认为你应该尝试 NSTimer 或 dispatch_after 来做这样的事情:(NSTimer 可能不太方便,因为它需要一个 class 方法用作回调选择器)

sender.backgroundColor = UIColor.greenColor()
dispatch_after(#your time#, 
  dispatch_get_main_queue()){
  sender.backgroundColor = UIColor.whiteColor()
  #load your new question logic#
}

P.S.:performSelector:delay: 方法在 Swift.

中不可用

您可以为此使用 NSTimer,首先您实现 NSTimer 并添加持续时间 1.0 秒或任何想要的时间,然后传递时间 NSTimer 调用其函数,然后您换一个问题

如果只需要睡眠功能,就用

NSThread.sleepForTimeInterval(1)

使用 usleep,它接受一个以微秒为单位的整数。 (即 1,000,000 微秒相当于 1 秒)所以对于 0.1s 使用:

       // Sleep for 0.1s
       usleep(100000) 

推荐在后台线程中使用。您当然不希望在 UI 主线程上执行此操作!