Affichez l'étiquette, puis démarrez un NSTimer
, dont la méthode de rappel timeout masque l'étiquette. (Je me cache l'étiquette au lieu de le retirer de la hiérarchie de la vue, qui peut ou ne peut pas être plus approprié.)
code
est similaire à ma réponse de NSTimers and triggers in Obj-C
MyViewController.h:
...
@interface MyViewController : UIViewController
{
...
UILabel* label;
NSTimer* timer;
...
}
...
MyViewController.m:
...
static const NSTimeInterval TIMER_INTERVAL = 10.0;
...
- (void)dealloc
{
[self stopTimer];
...
[super dealloc];
}
...
- (void)showLabelAndStartTimer
{
label.hidden = NO;
[self startTimer];
}
...
- (void)startTimer
{
[self stopTimer];
timer = [NSTimer scheduledTimerWithTimeInterval:TIMER_INTERVAL
target:self
selector:@selector(timerCallback)
userInfo:nil
repeats:NO];
[timer retain];
}
...
- (void)stopTimer
{
if (timer)
{
[timer invalidate];
[timer release];
timer = nil;
}
}
...
- (void)timerCallback
{
label.hidden = YES;
}
Merci pour votre réponse! Fait exactement ce dont j'ai besoin :). – thedom