2011-07-28 10 views
1

초보자와 같은 시간을 보여주는 Label이있는 UIView가 있습니다. 나는 Timer 메서드에서 레이블을 설정했다. 여기에 코드를 다음과 같습니다 :UILabel을 타이머로 업데이트하지 않습니다.

ivarTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0 
    target:self 
    selector:@selector(updateTimer) 
    userInfo:nil 
    repeats:YES]; 

내 업데이트 방법은 다음과 같습니다 : 그것은 위대한 작품을

- (void)updateTimer { 
    ... 
    self.myLabel.text = @"someChangedStr"; 
    } 

. 하지만보기에서 나는 UITableView 있고 TableView 스크롤하면 self.myLabel.text 업데이트를 중지합니다. 스레드 또는 다른 것을 사용해야합니까?

답변

1

다른 스레드에서 타이머를 실행할 수 있지만 항상 주 스레드에서 UI 업데이트를 수행해야합니다. 그러나 NITimer를 UITrackingRunLoopMode에 추가해보십시오. 그러면 창에서 터치를 추적 할 때 계속 실행됩니다.

[[NSRunLoop mainRunLoop] addTimer:ivarTimer 
          forMode:UITrackingRunLoopMode]; 
+0

감사합니다. 저에게 맞습니다. –

관련 문제