7

NSTimer Xの残り時間にアクセスしようとしています。ボタンのタイトルを毎秒更新して、mm:ssゼロまでの残り時間を反映させたいと思います。ここには何も見つかりませんでした。

例えば:[btY setTitle:[What to insert here?] forState:UIControlStateSelected];

それとも、これを別の方法で解決したいですか?

4

3 に答える 3

16

あなたはfireDateを使うことができます

NSTimer *timer = [NSTimer timerWithInterval:1.0 target:self selector:@selector(updateButton) userInfo:nil repeats:YES];


- (void)updateButton:(NSTimer*)timer
{
    float timeRemaining = timer.fireDate.timeIntervalSinceNow;
    // Format timeRemaining into your preferred string form and 
    // update the button text
}
于 2015-05-06T22:33:45.713 に答える
2

これは通常、これを解決する方法ではありません。

代わりに、ボタンを更新する解像度に設定された繰り返し NSTimer を作成します。

たとえば、ボタンをゼロになるまで毎秒変更する場合は、次のように NSTimer を作成します。

NSTimer *timer = [NSTimer timerWithInterval:1.0 target:self selector:@selector(updateButton) userInfo:nil repeats:YES];

次に実装しupdateButtonます。基本的に残り秒のカウンターを持ち、呼び出されるたびupdateButtonにカウンターを1つ減らし、ボタンのタイトルを更新します。

于 2012-07-01T18:17:48.710 に答える
0

この種の情報を取得することはできません。代わりに、タイマーを数回実行する必要があります。たとえば、30 秒でタイマーを開始する代わりに、30 秒ごとに 1 回ボタンをテキストで更新する場合です。 1秒でタイマーを開始し、それを30回繰り返します

于 2012-07-01T18:18:13.067 に答える