Comment faire un clignotant (ou clignotant) curseur sur l'iphone?

Je suis en train de créer un "curseur clignotant" dans UIKit, j'ai essayé comme indiqué ci-dessous, ayant 2 fonctions qui, en gros, de continuer à appeler les uns les autres jusqu'à ce que le curseur est caché. Mais cela conduit à une belle récursion infinie... pour une raison quelconque, les fonctions s'appellent les uns les autres tout de suite, pas chaque demi-seconde comme prévu.

J'ai essayé de revenir si le "fini" paramètre n'est pas OUI (en décommentant la " si!ok) de la ligne), mais qui n'entraîne pas d'animation à tous les...

Une meilleure idée? Ai-je raté quelque chose, est-il un moyen plus facile de faire un "curseur clignotant"?

- (void)onBlinkIn:(NSString *)animationID finished:(BOOL)ok context:(void *)ctx {
if (cursorView.hidden) return;
//if (!ok) return;
[UIView beginAnimations:nil context:UIGraphicsGetCurrentContext()];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(onBlinkOut:finished:context:)];
cursorView.textColor = [UIColor grayColor];
[UIView commitAnimations];
}

- (void)onBlinkOut:(NSString *)animationID finished:(BOOL)ok context:(void *)ctx {
if (cursorView.hidden) return;
[UIView beginAnimations:nil context:UIGraphicsGetCurrentContext()];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(onBlinkIn:finished:context:)];
cursorView.textColor = [UIColor clearColor];
[UIView commitAnimations];
}
  • Le contexte paramètre est un pointeur void, pas un CGContextRef (bien que le passage d'un CGContextRef est valide, il ne sera certainement pas utile)
InformationsquelleAutor Zoran Simic | 2009-09-25