2017-08-31 7 views
0

ich einen Auslass erstellt haben und eine Aktion für sie durch Storyboard:UIButton der Aktion nimmt automatisch eine Verzögerung zu reagieren

@IBOutlet weak var pillButton: UIButton! 
@IBAction func pillPressed(_ sender: Any) { ... 

Wenn ich die Taste drücken, seine Aktion Feuer sofort. Wenn ich jedoch in 5 Sekunden erneut drücke, reagiert es nicht. Es ist so, als hätte es eine interne Verzögerung, um nach dem Klicken "zu schlafen". Wie deaktiviere ich es?

Ich weiß, dass es nicht reagiert, weil ich diesen Unterbrechungspunkt gesetzt habe.

break point set

+1

Es sollte nicht versperrte, aber was tun Sie in 'pillPressed()' genau? Machst du etwas, das den Hauptfaden blockiert? – Larme

+1

Versuchen Sie, die "Pillenbild" -Logik vom Modell weg in Ihr Modell zu verschieben: Anstatt den Inhalt des Hintergrundbildes der Schaltfläche zu prüfen, was sehr zeitaufwendig sein kann, sollten Sie den Status im Modell beibehalten, der angibt, ob eine Pille verwendet wird Bild wird als Hintergrund von 'pillButton' angezeigt. Sobald das Timing dieser Überprüfung reduziert ist, erwarte ich, dass das Leistungsproblem behoben wird. – dasblinkenlight

+0

danke Jungs du bist richtig ... der interne Code, wenn die Aktion eine UIAnimate hatte, die den Hauptcode blockiert, Fall gelöst –

Antwort

0

Interner Code, wenn die Aktion hatte eine UIAnimate, die den Haupt-Thread

Verwandte Themen