2010-12-06 108 views
1

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

在此先感谢您的帮助! :)

回答

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; 
} 
+0

感谢您的回答!正是我需要的:)。 – thedom 2010-12-06 09:49:49

2

将这个在viewWillAppear

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

而且在hideLabel,隐藏自己的标签,就像这样:

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

根据你afterDelay:0.0在这个地方指定的时间。

+0

谢谢!这是一个非常简单的方法。将保存该片段! – thedom 2010-12-06 09:50:28