0

ボタンにタイマーを設定するのに助けが必要です。今、私はこのコードを持っています、

- (IBAction)btnPlaySound:(id)sender {
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef soundFileUrlRef;
    soundFileUrlRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"", CFSTR(""), NULL);
    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileUrlRef, &soundID);
    AudioServicesPlaySystemSound(soundID);
}

ユーザーがこのボタンを2秒に1回だけタップできるようにしたいのですが、挿入する必要があるNSTimerと思いますが、どのようにしますか?

ありがとう

4

1 に答える 1

1
- (IBAction)buttonPressed:(id)sender
{
    myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
}

- (void)timerAction
{

    if (myButton.userInteractionEnabled == YES) {
        //do something
    }

    if ([myButton.tag == 0) {
        [myTimer invalidate];
        [myButton setTag:2];
        myButton.userInteractionEnabled = YES;
    }else{
        myButton.userInteractionEnabled = NO;
        int currentTime = myButton.tag;
        int newTime = currentTime - 1;
        [myButton setTag:newTime];
    }

}

NSTimer上記のコードを機能させるには、 「myTimer」およびUIButton「myButton」という名前の宣言が必要です。また、ボタンの初期タグを「2」に設定する必要があります。

于 2012-09-14T05:34:32.913 に答える