2016-12-27 1 views
0

Ich habe eine UIButton, und wenn er angezapft wird, möchte ich, dass er eine Hintergrundfarbe aufblinkt und dann nach einiger Zeit zu seiner alten Farbe zurückkehrt.Wie blitze ich eine Farbe?

Ihre alte Farbe ist nicht immer die gleiche, also habe ich eine Klassenvariable erstellt.

Hier ist meine aktuellen Code, aber ich bin nicht sicher, wie die Zeitverzögerung zu erreichen:

class ViewController: UIViewController { 
    ///stuff 
    var oldColor: UIColor? 

    @IBAction func buttonPressed(_ sender: UIButton) { 
     oldColor = sender.backgroundColor 
     flashColor(sender, UIColor.green) 
    } 

    func flashColor(btn: UIButton, color: UIColor) { 
     btn.backgroundColor = color 
     wait(100ms) //I really have no idea how to do this part 
     btn.backgroundColor = oldColor 
    } 

} 

Antwort

4

Verwenden Sie meine delay Funktion:

btn.backgroundColor = color 
    delay(0.1) { 
     btn.backgroundColor = oldColor 
    } 
+0

Sie ernsthaft diese auf Github Gist setzen sollten! Das ist erstaunlich, danke, ich werde das akzeptieren, sobald SO es mir erlaubt –

Verwandte Themen