2016-08-23 4 views
1

ich Ton und Animation auf Schaltfläche hinzufügen wollte, aber es zum Beispiel nicht funktioniert:IBAction hat keinen Ton und Animation, schnellen

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

Meine Frage ist, warum es automatisch zu viewDidLoad springt und entspricht nicht den ersten beiden Zeilen? und wie kann ich es reparieren?

+3

Rufen Sie 'viewDidLoad()' nicht auf! Wo hast du gelesen, dass du das tun musst? –

Antwort

0

Wahrscheinlich wird die erste Zeile nicht ausgeführt, da buttonBeep gleich null ist, also das Auspacken der optionalen NULL erzeugt und die Methode wird nicht aufgerufen. Für die zweite Zeile, denke ich, müssen Sie zunächst sender-Objekt, und rufen Sie dann setImage. Sie haben auch einen Tippfehler bei "sorState: .Highlighted", es ist "forState"

Was ist der Typ des Absenders? Wo wird buttonBeep initialisiert?

+0

buttonBeep wird in der ViewController-Klasse aktiviert, als var buttonBeep: AVAudioPlayer? Es funktioniert in verschiedenen Tasten, deshalb weiß ich nicht, warum es nicht funktioniert. – artG

+0

Rufen Sie prepareToPlay() vor dem Abspielen() auf? –