iOSでスワイプジェスチャーを検出する方法は?
-
28-09-2019 - |
質問
私のiPhoneアプリでは、ビューでユーザーが作成したスワイプジェスチャーを認識する必要があります。
スワイプジェスチャーを認識し、スワイプで関数を実行したいと思います。
ユーザーがスワイプジェスチャーをするので、ビューが水平にスライドし、別のビューを表示する必要があることが必要です。
何をする必要がありますか?
どうすれば認識できますか?
解決
使用 UISwipeGestureRecognizer
. 。他に言うことはそれほど多くありませんが、ジェスチャー認識者は簡単です。がある WWDC10ビデオ 主題についても。セッション120と121。:)
他のヒント
それがどのように機能するかを知っているが、それでも簡単な例が必要な場合は、ここにあります! (少なくとも私にとっては便利になります。コピーパステの例が必要になると、それを覚えていないことを試みることなく)
UISwipeGestureRecognizer *mSwipeUpRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
[mSwipeUpRecognizer setDirection:(UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:mSwipeUpRecognizer];
および.hファイルの追加:
<UIGestureRecognizerDelegate>
以下の次のリンクは、iPhoneのスワイプを検出する方法を説明するビデオチュートリアルにリダイレクトします。 Objective-C:
uiswipegesturerecognizerチュートリアル(iPhoneでスワイプを検出)
それを達成するために、以下のサンプルをコードします 迅速:
あなたはそれを持っている必要があります UISwipeGestureRecognizer
各方向に。それは少し奇妙です UISwipeGestureRecognizer.direction
プロパティはオプションスタイルのビットマスクですが、各認識者は1つの方向しか処理できません。必要に応じてすべてを同じハンドラーに送信して、そこに並べ替えたり、別のハンドラーに送信したりできます。これが1つの実装です。
override func viewDidLoad() {
super.viewDidLoad()
var swipeRight = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeRight.direction = UISwipeGestureRecognizerDirection.Right
self.view.addGestureRecognizer(swipeRight)
var swipeDown = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeDown.direction = UISwipeGestureRecognizerDirection.Down
self.view.addGestureRecognizer(swipeDown)
}
func respondToSwipeGesture(gesture: UIGestureRecognizer) {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.Right:
println("Swiped right")
case UISwipeGestureRecognizerDirection.Down:
println("Swiped down")
default:
break
}
}
}