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

2

viewWillAppearでこれを入れて:

このような
[self performSelector:@selector(hideLabel) withObject:nil afterDelay:0.0]; 

そしてhideLabelで、あなたのラベルを隠し、:

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

は、この場所でafterDelay:0.0であなたに応じて時間を指定します。

+0

ありがとう!これは本当に簡単なアプローチです。そのスニペットを保存します! – thedom

関連する問題