0

この「00:00:00」のようなカウンターを表示するタイマーを取得しようとしています。これが私の現在のコードです。簡単なstringWithFormatを使用して動作させようとしていますが、フォーマットを個別に設定する必要があると思います。これを行う方法について何か考えがありますか?

- (void)TimerCount {
    CountNumber = CountNumber + 1;
    TimerDisplay.text = [NSString stringWithFormat:@"Hour: %0*i", length, hour];
}
4

2 に答える 2

1
- (void)timerCount {

 {
    CountNumber = CountNumber + 1;
    NSInteger seconds = CountNumber % 60;
    NSInteger minutes = (CountNumber / 60) % 60;
    NSInteger hours = (CountNumber / 3600);
    TimerDisplay.text =  [NSString stringWithFormat:@"%i:%02i:%02i", hours, minutes, seconds];
}

上記のコードを試してください。

そして、このメソッドが毎秒起動されるように構成します。

ビューでDidLoad

NSTimer *counterTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 
                                                        target:self 
                                                      selector:@selector(timerCount) 
                                                      userInfo:nil 
                                                       repeats:YES];
[[NSRunLoop mainRunLoop] addTimer: counterTimer forMode:NSRunLoopCommonModes];

また、ARC を使用している場合は、VC の割り当てが解除されるまで、カウンタータイマーを iVar として保持します。

于 2014-04-03T11:09:18.263 に答える
-1
- (void)TimerCount
{
    CountNumber++;
    NSString *time = [[NSString alloc] init];
    NSUInteger seconds = CountNumber;
    NSUInteger minutes = 0;
    NSUInteger hours = 0;
    if (seconds > 59) {
        seconds -= 60;
        minutes++;
        if (seconds < 10) {
            time = [NSString stringWithFormat:@":0%i",seconds];
        } else time = [NSString stringWithFormat:@":%i",seconds];
    }
    if (minutes > 59) {
        minutes -= 60;
        hours++;
        if (minutes < 10) {
            time = [NSString stringWithFormat:@":0%i%@",minutes,time];
        } else time = [NSString stringWithFormat:@":%i%@",minutes,time];
    }
    if (hours < 10) {
        time = [NSString stringWithFormat:@"0%i%@",hours,time];
    } else time = [NSString stringWithFormat:@"%i%@",hours,time];

}

NSString *time は時間です。

また、このメソッドを毎秒呼び出すNSTimer:

NSTimer *counterTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 
                                                        target:self 
                                                      selector:@selector(timerCount) 
                                                      userInfo:nil 
                                                       repeats:YES];
于 2014-04-03T10:26:08.767 に答える