Sto cercando di creare un "cursore lampeggiante" personalizzato in UIKit, ho provato come mostrato di seguito, avendo 2 funzioni che sostanzialmente continuano a chiamarsi l'un l'altra fino a quando il cursore non viene nascosto. Ma questo porta ad una bella ricorsione infinita ... per qualche motivo le funzioni si chiamano subito, non ogni mezzo secondo come previsto.Come fare un cursore lampeggiante (o lampeggiante) su iphone?
ho cercato di tornare se il parametro 'finito' non è SI (decommentando la linea 'if (! Ok)'), ma che porta a nessuna animazione a tutti ...
Qualche idea migliore? Mi sono perso qualcosa, c'è un modo molto più semplice per creare un "cursore lampeggiante"?
- (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];
}
Il parametro context è un puntatore nullo, non un CGContextRef (anche se passa un CGContextRef è valida, certamente non sarà utile) – rpetrich