2017-12-17 10 views
2

Ich habe eine Gruppe von sechs Tasten - wenn man (programmgesteuert) gedrückt wird, möchte ich es aufleuchten und dann ausblenden. Also habe ich eine Funktion namens lightUp (button: UIButton) erstellt. Ich habe auch zwei Bilder für jede Taste - beleuchtet und unbeleuchtet. Ich kann von der Standardeinstellung unbeleuchtet zu leuchten gehen, aber bisher versuchte ich, die Taste zuerst zu beleuchten, bevor ich sie wieder auf unbeleuchtet zurückbreche, war ein Problem. Im folgenden Code leuchten die Tasten überhaupt nicht auf.UIButton Übergang

Antwort

1

Legen Sie zwei Übergänge fest, die zweite im Completion-Handler des ersten vielleicht?

func lightUp(button: UIButton){ 
     UIView.transition(with: button, duration: 0.2, options: .transitionCrossDissolve, animations: { 
      button.setImage(UIImage(named: padArrayOn[button.tag]), for: .normal) 
      }, completion: {_ in 
       UIView.transition(with: button, duration: 0.2, options: .transitionCrossDissolve, animations: { 
        button.setImage(UIImage(named: self.padArrayOff[button.tag]), for: .normal) 
        }, completion: { _ in 
         self.playSequence() 
        } 
     )}) 
} 
0

Wenn ich Sie richtig verstanden habe, möchten Sie den Knopf aufleuchten lassen (vielleicht den Hintergrund ändern) und dann sollte er ausbleichen.

Sie können so etwas wie dies versuchen:

func lightUpAndFadeOut(button: UIButton){ 
    UIView.animate(withDuration: 2) { 
     button.backgroundColor = UIColor.red 
    } 
    UIView.animate(withDuration: 5) { 
     button.alpha = 0 
    } 
} 

Jede Taste ruft diese Funktion auf, und es sollte wie folgt aussehen:

lightUpAndFadeOut(button: sender as! UIButton) 

Richtige?

+0

Ihre Antwort würde einen ähnlichen Effekt zu dem, was ich suchte, so danke! Aber ich verwende Bilder für meine Buttons, also ist es nicht ganz dasselbe. – squarehippo10

Verwandte Themen