1

私のアプリでは、ユーザーが でカウントダウンタイマーを設定できるようにしましUIDatePicker's CountDownTimerた。

カウント時間を表示するものがありUILabelます ユーザーが CountDownTimer から時間を選択すると、次の写真のように、ユーザーが CoutDownTimer で選択したカウントダウンを表示したいと思います。

ここに画像の説明を入力

だから私はCountDownTimer次のコードでユーザーが選択したカウント時間を取得します

self.dateFormatter = [[NSDateFormatter alloc] init];
[self.dateFormatter setDateFormat:@"HH:mm:ss"];

self.sleepTimer = [NSTimer timerWithTimeInterval:1.00 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO];

00:00 になったら、イベントを発生させたい。

毎秒カウントダウンを減らす方法がわかりません。

助けてくれてありがとう。

4

3 に答える 3

3

あなたはそれを行うことができます:

[NSTimer timerWithTimeInterval:1.00 target:self selector:@selector(decrementByOne:) userInfo:nil repeats:YES];
于 2013-02-26T13:34:42.690 に答える
2

countDownDurationあなたのプロパティUIDatePicker(値は秒単位で与えられます)を のようなインスタンス変数に保存しますsecondsLeft

self.sleepTimer = [NSTimer scheduledTimerWithTimeInterval:1.00 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];

timerFired:これにより、毎秒メソッドが呼び出されます。1 を減算secondsLeftします。残り時間を更新UILabelします (秒を hh:mm:ss にフォーマットします -フォーマットに関するこの質問を参照してください)。カウントダウンの残り時間があるかどうかを検証し、カウントダウンが完了したら適切なアクションを実行します ( secondsLeft <= 0)。

カウントダウンが完了したら、忘れずに片付けてください。

[self.sleepTimer invalidate];
self.sleepTimer = nil;
于 2013-02-26T13:51:20.960 に答える
0

日付を取得してプロパティに保存し、NSDates を確認します

– dateByAddingTimeInterval:

だからあなたがするなら

[self.date dateByAddingTimeInterval:-1];

日付を 1 秒減らします。その後、新しい計算された日付で UI を更新します。

さらに、すべてのコードを 1 つの関数にパッケージ化し、次の関数を呼び出してこの関数を実行できます。

performSelector:withObject:afterDelay: 
于 2013-02-26T13:35:51.383 に答える