2015-08-06 1 views
0

Я хочу добавить некоторые последние штрихи к опыту пользователя в игре, которую я пишу в Swift. В настоящее время у меня есть gameOVerViewController, который активируется, когда игра закончена, на этом экране счет и рекордер отображаются через промежуточное объявление через несколько секунд.Установите таймер на UIButton, чтобы активировать его после задержки?

У меня также есть UIButton replay, который разматывает сегу и перезапускает игру.

То, что я ищу, - это таймер на кнопке повтора, который активирует кнопку через три секунды, подобно тому, что вы можете видеть на межстраничном объявлении, где вы можете видеть отсчет секунд, прежде чем вы сможете провести какое-либо взаимодействие с объектом.

--------------- Обновлено с кодом

Здравствуйте еще раз,

я частично сделал код работы, то UIButton была она accesabilitty включена окно не указан в приведенном ниже коде в файле gameOverViewController.

class GameOverViewController: UIViewController { 

@IBOutlet weak var button: UIButton! 

} 

override func viewDidLoad() { 
    super.viewDidLoad() 

      self.button.enabled = false 
    NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: "enableButton", userInfo: nil, repeats: false) 

//lots of code here to bring up google interstitial advert 

} 

func enableButton() { 
    self.button.enabled = true 
} 

Кнопка правильно неактивны в течение трех секунд, затем синеет, однако, как только щелкнул viewController зависает и зависает. Ошибка вызывает AppDelegate с ошибкой SIGABRT. Это выдержка из выходного поля ...

20 libdyld.dylib      0x0000000105fa5145 start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

Кнопка является частью Segue, что когда-то прессованного изменяет ViewController обратно GameViewController, вот код на GameViewController

@IBAction func replay(segue: UIStoryboardSegue) { 
} 

без код, который позволяет кнопке через три секунды воспроизведение воспроизводится нормально. Есть идеи?

+1

будет [ответ на этот связанный вопрос] (http://stackoverflow.com/a/26756532/981049) быть тем, что вы ищете? –

+0

Что вы пробовали и что не работаете? –

+0

@DharmeshKheni Я использовал код из учебника, который Майкл написал выше, кажется, почти работает, но теперь сбой, я редактировал сообщение, чтобы включить то, что я пробовал, и что не работает по запросу. Спасибо. –

ответ

0

Вы можете отключить кнопку воспроизведения вначале и использовать performSelector:AfterDelay, чтобы включить ее позже.

0

Что вы можете сделать, это использовать NSTimer для подсчета времени на 3 секунды, а каждую секунду заменить кнопку на тот, у которого есть текущие секунды. Чтобы сделать кнопку неактивной в течение этого времени, вы можете использовать альфу, которая меньше 1 (для визуальных целей) и отключить взаимодействие с пользователем. Надеюсь, это поможет! Если вам нужна помощь в написании кода, я могу помочь.

Смежные вопросы