[解決済み] iOSのPanとSwipeの違いは何ですか?
質問
簡単なようでいて. トラックパッドを持つ、指を動かす、離す .. しかし、なぜかスワイプがトリガーされない(代わりにパンがトリガーされる)。
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:v action:@selector(handleSwipe:)];
swipeGesture.direction= UISwipeGestureRecognizerDirectionUp;
[v addGestureRecognizer:swipeGesture];
パンは、代わりに上記のシーケンスで認識されます。
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]
initWithTarget:v action:@selector(handlePan:)];
[v addGestureRecognizer: panGesture];
パンをコメントした場合、スワイプも同じジェスチャーで認識される・・・これで、2つの疑問。
- パンとスワイプの違いは何ですか?
- どのようにiPhoneシミュレータ上でスワイプをシミュレートすることができますか?
どのように解決するのですか?
定義上、スワイプ ジェスチャは、必然的にパン ジェスチャでもあります。パン認識エンジンは並進移動の開始点を探し、時間の経過とともにあらゆる方向への移動を報告し続けますが、スワイプ認識エンジンはユーザーのタッチが必要な方向に直線的に移動したかどうかを即座に判断します。
デフォルトでは、2 つの認識エンジンは同じジェスチャを認識しないため、パンとスワイプの間で競合が発生します。ほとんどの場合、パン認識エンジンは、そのジェスチャがより単純で一般的であるため、競合に勝ちます。スワイプはパンですが、パンはスワイプではないかもしれないので、パンが最初に認識され、他の認識器は除外されます。
デリゲートメソッドを使用してこの競合を解決することができるはずです。
gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
または、パン認識器をスワイプ認識器に依存させることによって、デリゲートなしで
requireGestureRecognizerToFail:
.
競合が解決されたので、マウスをすばやくドラッグすることによって、1 本指のスワイプをシミュレートできるはずです (ただし、マウスは指よりも正確なので、デバイス上で本物を行うよりも少し細かいことになります)。2 本指でのパン/スワイプは、Option & Shift キーを押しながら行うと行うことができます。
関連
-
[解決済み] すべてのセレクションセグメンテーションの違いは何ですか?
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] iOSで画面の幅と高さを取得する方法は?
-
[解決済み] iOSシミュレータでスクリーンショットを撮る
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
-
[解決済み] iOS 7のUINavigationControllerで背面スワイプジェスチャーを無効にする方法
-
[解決済み】iOSアプリの名前を変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] コードサインエラーです。期限切れのプロファイルを削除した後、プロビジョニングプロファイルが見つからない
-
[解決済み] CocoaPodsの最新バージョンにアップデートしますか?
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] swiftで電子メールアドレスを検証する方法は?