私は2つの異なるタッチイベントを持つボタンを実装しようとしています。ユーザーがボタンをタップすると(短時間触れると)、actionTappedがトリガーされ、ユーザーがボタンを長押ししてactionTouchedをトリガーするとします。2つの異なるタッチイベントを持つ1つのボタン
This linkはアイデアを与えるかもしれませんが、何度も何度も繰り返しアクションを繰り返します。
私は2つの異なるタッチイベントを持つボタンを実装しようとしています。ユーザーがボタンをタップすると(短時間触れると)、actionTappedがトリガーされ、ユーザーがボタンを長押ししてactionTouchedをトリガーするとします。2つの異なるタッチイベントを持つ1つのボタン
This linkはアイデアを与えるかもしれませんが、何度も何度も繰り返しアクションを繰り返します。
OK、ここに私の解決策です。 scheduledTimerWithTimeIntervalは、それが触れる可能分間隔です:
- (IBAction) micButtonTouchedDownAction {
self.micButtonTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(micButtonAction:) userInfo:nil repeats:YES];
self.micButtonReleased = FALSE;
}
- (IBAction) micButtonTouchedUpInsideAction {
self.micButtonReleased = TRUE;
}
- (IBAction) micButtonTouchedUpOutsideAction {
self.micButtonReleased = TRUE;
}
- (void) micButtonAction:(NSTimer *)timer {
[self.micButtonTimer invalidate];
self.micButtonTimer = nil;
if(self.micButtonReleased) {
NSLog(@"Tapped");
}
else {
NSLog(@"Touched");
}
}
私は、次の操作を行います:あなたのタッチで
touchDownTime
それを呼び出すことができます)。あなたのタッチアップ方法で:時間が>必要な時間を経過した場合は、他のアクション1(ロングタッチ)は、アクション2(短いタッチ)を行うのですか秒
2.2に変換time elapsed = current time - touchDownTime
2.1を計算
のiOS SDKは、あなたのニーズに最適です2つのジェスチャー認識機能が含まれます。
それに任意のアクションを装着せずにボタンを作成します。次に、2つのジェスチャーレコグナイザを作成します。ジェスチャレコグナイザはそれぞれのタイプの1つで、それぞれのアクションに割り当てられます。次に、ジェスチャ認識ツールをボタンに付けます。
チェックこの[http://stackoverflow.com/questions/4013896/detecting-long-tap-on-iphone](http://stackoverflow.com/質問/ 4013896 /検知 - 長い - タップオン - アイホン) –