Xcode Swift Ios App: добавление задержки
Я работаю над простой игрой викторины, и я хочу добавить некоторые небольшие задержки в игру, теперь, когда я выбираю ответ, игра мгновенно переходит к следующему ответу, теперь я хочу изменить цвет кнопки на 0,1 секунды, а затем загружает следующий вопрос
я попробовал функцию сна, но она добавляет только задержку без изменения цвета, и я не могу выбрать интервалы времени меньше секунды, потому что она принимает целые числа как значение
здесь код
sender.backgroundColor = UIColor.greenColor()
sleep(1)
sender.backgroundColor = UIColor.whiteColor()
что я должен положить вместо сна, чтобы получить то, что я хочу?
спасибо
4 ответов
можно использовать NSTimer
для этого, во-первых, вы реализуете NSTimer
и вы добавляете время продолжительности 1,0 секунды или то, что когда-либо хотите, передайте время NSTimer
вызовите его функцию, и вы измените вопросы на другой
использовать usleep который принимает int в микросекундах. (т. е. 1,000,000 микросекунд эквивалентно 1 секунде) поэтому для 0.1 s используйте:
// Sleep for 0.1s
usleep(100000)
рекомендуется использовать в фоновом потоке. Вы, конечно, не хотите делать это в основном потоке пользовательского интерфейса!
Я думаю, вы должны попробовать NSTimer или dispatch_after сделать такие вещи: (NSTimer может быть не так удобен, поскольку ему нужен метод класса, используемый в качестве селектора обратного вызова)
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.