1

別のスタック オーバーフロー スレッド ( UIButton Touch and Hold ) のコードを使用して、ボタン (UIButton) ホールドの繰り返しタスクを実装しました。

諸事情により、再延期を希望します。繰り返し遅延の定義

ただし、これを行う方法について頭を悩ませることはできません。私はiPhoneのコーディングに比較的慣れていません。

4

1 に答える 1

2

あなたが提案したコードに触発されて、次のようなものに行くことができます:

ボタンが押さNSTimerれたときに起動し、毎秒メソッドを起動する を作成しますx

ヘッダー (.h):

// Declare the timer and the needed IBActions in interface.
@interface className {
    NSTimer * timer;
}
-(IBAction)theTouchDown(id)sender;
-(IBAction)theTouchUpInside(id)sender;
-(IBAction)theTouchUpOutside(id)sender;

// Give the timer properties.
@property (nonatomic, retain) NSTimer * timer;

実装ファイル (.m):

// Synthesize the timer
// ...   

IBAction2 秒ごとにアクション メソッドを起動するタイマーを開始するための「タッチ ダウン」を作成します。次に、"Touch Up Inside" と "Touch Up Outside" の IBAction をもう 1 つ作成して、タイマーを無効にします。

例えば:

-(IBAction)theTouchDown {

    self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0
                                                  target:self
                                                selector:@selector(action:)
                                                userInfo:nil
                                                 repeats:NO];
}

-(IBAction)theTouchUpInside {

    [self.timer invalidate];
    self.timer = nil;
}

-(IBAction)theTouchUpOutside {

    [self.timer invalidate];
    self.timer = nil;
}

次に、NSTimer必要なことは何でも行うことによって起動されたそのメソッドで:

-(void)action:(id)sender {

    // ...
}
于 2012-10-18T23:02:10.937 に答える