別のスタック オーバーフロー スレッド ( UIButton Touch and Hold ) のコードを使用して、ボタン (UIButton) ホールドの繰り返しタスクを実装しました。
諸事情により、再延期を希望します。繰り返し遅延の定義
ただし、これを行う方法について頭を悩ませることはできません。私はiPhoneのコーディングに比較的慣れていません。
あなたが提案したコードに触発されて、次のようなものに行くことができます:
ボタンが押さ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
// ...
IBAction
2 秒ごとにアクション メソッドを起動するタイマーを開始するための「タッチ ダウン」を作成します。次に、"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 {
// ...
}