UIButton interagiert während der Animation nicht

7

Ich versuche eine UIButton zu animieren. Aber während der Animation gibt es keine Interaktion mit dem UIButton. Erwartetes Verhalten ist es, auf die Schaltfläche klicken zu können, während sie sich bewegt. Hier ist das Code-Snippet von UIButton und Animation:

%Vor%

hit selector zeigt nur ein NSLog an, um anzuzeigen, ob die Schaltfläche darauf reagiert oder nicht. Jede Hilfe wäre willkommen.

    
Frank 14.06.2011, 15:26
quelle

4 Antworten

8

In letzter Zeit gab es hier einige Fragen. Die Animation ist rein visuell. Sie können auf die Schaltfläche in ihrem alten Rahmen tippen, bis die Animation abgeschlossen ist. Wenn sie fertig ist, springt die eigentliche Schaltfläche.

BEARBEITEN:

Diese Antwort bezieht sich auf mich. Sie müssen die Schaltfläche offenbar mit einem NSTimer manuell verschieben. Siehe die verknüpfte Frage / Antwort für mehr.

Andere Leute schlagen vor, UIViewAnimationOptionAllowUserInteraction als UIViewAnimation-Option zu übergeben.

    
Moshe 14.06.2011, 15:52
quelle
24

Versuchen Sie, die Animationsoption auf UIViewAnimationOptionAllowUserInteraction zu setzen.

%Vor%     
csano 14.06.2011 15:53
quelle
0

Dieses Problem wird durch große Animationen pro Block verursacht. Ich machte eine NSTimer basierte Lösung, wie die oben vorgeschlagene, und es funktionierte ... aber die Bewegung war ruckelnd (es sei denn, ich habe die Animation in jeden Timer Event Trigger eingefügt).

Da Animation sowieso erforderlich war, habe ich eine Lösung gefunden, die keinen Timer benötigt. Es animiert nur eine kurze Distanz und somit ist der Button Klick immer noch genau, mit nur einem kleinen Fehler, der in der UI sehr unbemerkbar ist, und kann je nach Params reduziert werden.

Beachten Sie, dass der Fehler zu jedem Zeitpunkt & lt; 15.0, die für mehr Genauigkeit abhängig von Ihren Anforderungen an die Animationsgeschwindigkeit reduziert werden kann. Sie können auch die Dauer für mehr Geschwindigkeit reduzieren.

%Vor%     
paiego 02.09.2011 05:33
quelle
0

Eine weitere Option ist das Hinzufügen einer transparenten Schaltfläche über die Schaltfläche, die Sie animieren. In Ihrem speziellen Fall können Sie dies möglicherweise nicht verwenden, da Sie die Schaltfläche verschieben, aber Sie können möglicherweise eine Überlagerungstaste erstellen, die groß genug ist, um von der Startposition bis zur endgültigen Position abzudecken.

Ich hatte dieses Problem, und in meinem Fall funktionierte UIViewAnimationOptionAllowUserInteraction nicht. Ich animierte das Alpha einer UIButton in einem UIBarButtonItem (erstellt mit initWithCustomView :), um einen pulsierenden Effekt zu erzeugen, und diese Option würde nicht funktionieren. Ich mag die NSTimer-Option auch nicht (nicht glatt), also habe ich am Ende einfach eine Overlay-Schaltfläche hinzugefügt, die ich nicht mag, aber einwandfrei funktioniert.

    
josema.vitaminew 12.05.2014 11:14
quelle