2011-07-28 7 views
1

私はストップウォッチのような時間を示すラベルを持つ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

ありがとうございました –

関連する問題