2016-08-23 8 views
1

Я хотел, чтобы добавить звук и анимацию кнопки, но он не работает, например:IBAction не имеет звук и анимацию, быстрый

@IBAction func retry(sender: AnyObject) 
{ 
    buttonBeep?.play() 
    sender.setImage(UIImage(named: "retryTwo.png")!, forState: .Highlighted) 
    self.viewDidLoad() 
} 

Мой вопрос, почему он автоматически переходит к viewDidLoad и не соответствует первой строке? и как я могу это исправить?

+3

Не вызывайте 'viewDidLoad()'! Где вы читали, что вы должны это сделать? –

ответ

0

Возможно, первая строка не будет выполнена, потому что buttonBeep равен нулю, поэтому разворачивание необязательного значения создает нуль и метод не вызывается. Для второй строки, я думаю, вам сначала нужно отбросить объект-отправитель, а затем вызвать setImage. У вас также есть опечатка на «sorState: .Highlighted», это «forState»

Что такое отправитель? Где инициализируется buttonBeep?

+0

buttonBeep инициализируется в классе ViewController, как var buttonBeep: AVAudioPlayer? он работает в разных кнопках, поэтому я не знаю, почему в этом не работает. – artG

+0

Вы называете prepareToPlay() перед игрой()? –