3.2未満のiOSでロングプレスジェスチャーの機能を取得する方法
-
14-10-2019 - |
質問
uilongpressgestureは、iOS Ver 3.2以降で利用できます。しかし、私は最大限の互換性のためにアプリケーションを開発しようとしているため、iOS ver2.0をターゲットにしています
iOS v2.0でロングプレスのジェスチャーを達成する方法については、誰でも教えてもらえますか
解決
一本の指の場合、それは非常に簡単です:でタイマーを開始します touchesBegan
タイマーが発射されたときにアクションをメソッドとトリガーします。取得した場合はタイマーをキャンセルします touchesEnded
それが発射する前に。これが使用される実装です performSelector:withObject:afterDelay:
方法。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self performSelector:@selector(fireLongPress)
withObject:nil
afterDelay:LONG_PRESS_THRESHOLD];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[NSObject cancelPreviousPerformRequestsWithTarget:self];
}
- (void)fireLongPress {
// do what you want to do
}
指が行き過ぎている場合、タイマーを殺したいと思うでしょう。
MultiTouchを使用すると、もう少し複雑です。どのタッチがどれであるかを追跡する必要があります。たとえば、1つの指が十分に長く押したときに何をすべきかを決定する必要があります UILongPressGestureRecognizer
します)。
他のヒント
実装します touches...
あなたの見解の方法。一定の時間が経過した場合 touchesBegan:withEvent:
と touchesEnded:withEvent:
何もありません touchesMoved:withEvent:
イベント、あなたは長い報道をしています。
所属していません StackOverflow