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 主线程上执行此操作!
我正在开发一个简单的问答游戏,我想给游戏添加一些延迟,现在当我 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 主线程上执行此操作!