iPhone UIView Animation Deaktiviert UIButton Subview

7

Ich habe also ein Problem mit Buttons und Animationen. Im Grunde animiere ich eine Ansicht mit den UIView-Animationen und versuche gleichzeitig, auf die Schaltfläche in der Ansicht zu tippen. Die Ansicht ist genauso groß wie die Schaltfläche und die Ansicht ist eigentlich eine Unterklasse von UIImageView mit einem Bild unterhalb der Schaltfläche. Die Ansicht ist eine Unteransicht einer Containeransicht, die im Interface Builder mit aktivierter Benutzerinteraktion und aktiviertem Clipping angezeigt wird. Die gesamte Animation und Schaltflächenbehandlung erfolgt in dieser Unterklasse UIImageView, während die Nachricht startFloating nach Bedarf von einer separaten Klasse gesendet wird.

Wenn ich keine Animation mache, wird die Nachricht buttonTapped: richtig gesendet, aber während der Animation wird sie nicht gesendet. Ich habe auch versucht, die Methode touchesEnded zu implementieren, und das gleiche Verhalten tritt auf.

UIImageView Unterklasse init (Ich habe die Schaltfläche mit einer Farbe gefüllt, damit ich sehe, dass der Rahmen richtig eingestellt wird, was er tut):

%Vor%

Animationsmethode, die die Animation startet (wenn ich nicht anrufe, funktioniert die Schaltfläche korrekt):

%Vor%

Also, um klar zu sein:

  • Die Verwendung der UIView-Animation deaktiviert die Schaltfläche effektiv.
  • Durch das Deaktivieren der Animation funktioniert die Schaltfläche.
  • Die Schaltfläche ist richtig skaliert und auf dem Bildschirm positioniert und bewegt sich mit der Ansicht korrekt.
bensnider 03.06.2010, 18:53
quelle

3 Antworten

7

Die Animation ist nur Augenweide. Die Animation bleibt hinter der tatsächlichen Bewegung der Ansicht zurück. Die Schaltfläche befindet sich bereits am Zielpunkt, wenn die Animation startet. Sie sehen nur einen Film von der Ansicht / Schaltfläche, die sich bewegt.

Wenn Sie möchten, dass eine Schaltfläche während der Animation angeklickt werden kann, müssen Sie die Animation selbst erstellen.

    
Mr. Berna 03.06.2010, 20:00
quelle
20

Dies behebt das Problem:

%Vor%     
user726522 26.09.2011 16:50
quelle
5

... hatte das gleiche Problem, weil mein Code pro Block eine große Animation machte. 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 Knopfklick 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:31
quelle