显示标签的持续时间

时间:2010-12-06 09:25:59

标签: iphone cocoa-touch ios nstimer

使用我的iPhone应用程序,我需要一个在指定时间内可见的标签。我该如何管理呢? 显示一个标签,例如可见10秒钟,但随后会从视图层次结构中删除?

提前感谢您的帮助! :)

2 个答案:

答案 0 :(得分:2)

显示标签,然后启动NSTimer,其超时回调方法隐藏标签。 (我隐藏了标签,而不是将其从视图层次结构中移除,这可能是也可能不合适。)

代码类似于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;
}

答案 1 :(得分:2)

将其放入viewWillAppear

[self performSelector:@selector(hideLabel) withObject:nil afterDelay:0.0];

hideLabel中,隐藏您的标签,如下所示:

-(void)hideLabel {
    yourLabel.hidden=YES;
}

根据您在此处afterDelay:0.0指定时间。