2010-12-06 99 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