Estoy tratando de crear un "cursor intermitente" personalizado en UIKit, lo he intentado como se muestra a continuación, teniendo 2 funciones que básicamente siguen llamándose entre sí hasta que se oculta el cursor. Pero esto lleva a una buena recursión infinita ... por alguna razón las funciones se llaman entre sí de inmediato, no cada medio segundo como se espera.¿Cómo hacer que un cursor parpadee (o parpadee) en el iphone?
Me trataron de regresar si el parámetro 'terminado' no es SÍ (eliminando el comentario de la línea 'if (! Bien)'), pero que no conduce a ninguna animación en todo ...
Cualquier idea mejor? Perdí algo, ¿hay alguna manera mucho más fácil de hacer un "cursor parpadeante"?
- (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];
}
El parámetro de contexto es un puntero nulo, no un CGContextRef (aunque pasa un CGContextRef es válido, desde luego, no será útil) – rpetrich