2017-07-12 1 views
0

Ich habe 4 UIButtons in einem UIScrollView. Die Ansicht Hierarchie ist wie:
UIButtons IBAction-Methode ausgeführt nach Verzögerung in Swift

UIViewController-> UIView-> UIScrollView-> UIView-> UIView-> UIButton 

ich die IBAction für respektierten angeschlossen haben UIButton mit TouchupInside von UIStoryboard.
Mein Problem ist, wenn ich auf UIButton klicke, wird es markiert, aber die respektierte IBAction Methode wird nicht zu der Zeit aufgerufen. Die Aktion wurde aufgerufen, nachdem ich ein anderes Steuerelement wie UITextField oder ein anderes bearbeitbares Steuerelement ausgewählt habe. Ich kann das Problem nicht verstehen.
Ich habe versucht, die Aktion auf die UIButton auch wie programmatisch hinzuzufügen: gleiche

self.newProductNotifBtn?.addTarget(self, action: #selector(notifCheckMarkBtnClicked), forControlEvents: .TouchUpInside) 

Aber das Ergebnis ist. Keine Aktion für die Methode wird zur gleichen Zeit ausgeführt wie sie ausgewählt wurde.
Die Vorschläge werden geschätzt.

+0

Sind Sie sicher, dass Sie es für touchUpInside hinzugefügt haben und nicht einen anderen Selektor? –

+0

Ja, ich habe es zweimal überprüft. –

+0

Es könnte sein, dass Sie das scrollviews viewDidBeginScrolling-Ereignis auslösen und nicht Ihre buttons touchUpInside-Ereignis (oder andere Ereignisse, die Sie möglicherweise in Ihren Ansichten haben) –

Antwort

0

Vielen Dank für Ihre freundliche Antwort und Zeit.
Nach der Suche, während ich meine Antwort gefunden habe. Hier füge ich meine Antwort hinzu, um jemandem Hilfe zu holen.
Ich hatte einen dummen Fehler. Das Problem war nicht mit der Scrollview.
Ich nahm eine tippen Gestenerkenner in Storyboard und programmatisch. Das war eine Verzögerung bei der Ausführung von Schaltflächen.
Ich entfernte es von beiden, die meinen Code perfekt und ohne Verzögerung laufen lassen.
Nochmals vielen Dank.

Verwandte Themen