J'essaie d'attraper quand une animation UIPicker spécifique est terminée.attraper la notification UIPicker selectRow de l'animation terminée
J'ai cherché longtemps une réponse à ceci mais il semble que la réponse commune, qui est de s'assurer que l'appel de selectRow est dans les appels de beginAnimations et de commitAnimations, ne fonctionne pas.
Le problème est que l'animationFinished est déclenchée presque immédiatement après l'appel de commitAnimations et bien avant que l'animation réelle s'arrête. En pensant que le problème pourrait être que le selectRow crée son propre bloc d'animation et que je ne suis pas en train de suivre ce que je veux, j'ai essayé d'appeler selectRow avec animation: NO en espérant que mon propre bloc d'animation reprendrait l'animation du sélecteur . Cela a en effet fait l'animation Finished trigger à la fin de l'animation mais l'animation elle-même est devenue saccadée.
Comment puis-je m'assurer que je suis la bonne animation ou est-ce qu'il me manque autre chose?
Toute information serait grandement appréciée, y compris des références concises à la documentation appropriée que j'ai pu manquer.
Meilleures salutations, M @
Voici le code:
- (void) animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context {
NSLog(@"animation %d stopped",animationID);
}
- (void)animateToRow:(UIPickerView *)pickerView toRow:(NSInteger)row inComponent:(NSInteger)component
{
[UIPickerView beginAnimations:@"1" context:nil];
[UIPickerView setAnimationDelegate:self];
[UIPickerView setAnimationDidStopSelector:@selector(animationFinished:finished:context:)];
[pickerView selectRow:row inComponent:component animated:YES];
[UIPickerView commitAnimations];
}
Nous vous remercions de votre réponse rapide et claire. Alors que je vais certainement essayer cela pour satisfaire ma curiosité, il semble un peu trop ... non pris en charge pour s'appuyer sur un produit de magasin d'application réelle. D'abord et avant tout, ma question est de m'assurer que je ne manque pas un modèle connu ou un moyen officiel de l'API pour ce faire. Si personne d'autre n'en propose un, et que vous suggérez qu'il n'y en a pas, je devrai soit trouver un chemin différent, soit en reconsidérer l'utilisation. Meilleures salutations , M @ –