Je commence un agrandissement animé lorsqu'une image est touchée, puis redimensionne la taille normale lorsqu'elle est relâchée. En utilisant setAnimationBeginsFromCurrentState: OUI, l'effet de zoom est agréable et fluide si vous levez votre doigt en l'animant. Cependant, ce que je veux faire est de "verrouiller" la plus grande taille en place si vous avez touché l'image assez longtemps pour que l'animation se termine, mais laissez-la rétrécir comme d'habitude si vous relâchez prématurément.iPhone SDK - comment savoir quand une animation est terminée?
Existe-t-il un moyen de savoir si une animation est en cours ou si une animation particulière est terminée? Je pense que je peux probablement le faire avec un execSelector: afterDelay: call in touchStarted, avec un délai égal à la durée de l'animation et l'annuler si touchEnded arrive trop tôt, mais je ne peux pas imaginer que ce soit la meilleure façon ...?
Il m'a fallu un certain temps pour réaliser ce réellement fait ce que je voulais. animationDidStop est appelé si le zoom arrive à l'endroit où il allait, ou si l'animation qui rétrécit prend le dessus. Cependant, la valeur de fini nous dit si elle a fini comme initialement instruit. Puis-je suggérer de changer le corps de animationDidStop dans votre exemple pour: if ([terminé boolValue]) { NSLog (@ "Animation terminée!"); } Ceci est alors une réponse parfaite :) –