Xcode Swift Ios App: добавление задержки

Я работаю над простой игрой викторины, и я хочу добавить некоторые небольшие задержки в игру, теперь, когда я выбираю ответ, игра мгновенно переходит к следующему ответу, теперь я хочу изменить цвет кнопки на 0,1 секунды, а затем загружает следующий вопрос

я попробовал функцию сна, но она добавляет только задержку без изменения цвета, и я не могу выбрать интервалы времени меньше секунды, потому что она принимает целые числа как значение

здесь код

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

что я должен положить вместо сна, чтобы получить то, что я хочу?

спасибо

4 ответов


можно использовать NSTimer для этого, во-первых, вы реализуете NSTimer и вы добавляете время продолжительности 1,0 секунды или то, что когда-либо хотите, передайте время NSTimer вызовите его функцию, и вы измените вопросы на другой


Если вам нужна только функция сна, просто использовать

NSThread.sleepForTimeInterval(1)

использовать 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.