2010-12-06 8 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에서 16,,이 같은 레이블을 숨기 :

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

이 곳에서 afterDelay:0.0에서 당신에 따라 시간을 지정합니다.

+0

감사! 정말 쉬운 접근 방법입니다. 해당 스 니펫을 저장합니다! – thedom

관련 문제