メインビューで1つのビューを作成し、そのビューにスワイプとドラッグ(パン)ジェスチャの両方を適用したいとします。しかしそれがスワイプかパンのジェスチャーであることを知る方法は?スワイプとドラッグの間のジェスチャを検出する方法は?
1
A
答えて
3
@dfdが正しいです。このためには、常に組み込みのiOSジェスチャ認識機能を使用する必要があります。アプリがそれぞれジェスチャーを決定するための独自のロジックを実装する場合、iOSはユーザーにとって非常に矛盾したエクスペリエンスになります。
すべてのジェスチャ認識ツールはUIGestureRecognizer
のサブクラスになります。 documentationをお読みください。
あなたの場合、UISwipeGestureRecognizer
とUIPanGestureRecognizer
が必要です。ここで
は例です:
ここclass ViewController: UIViewController {
override func viewDidLoad() {
let swipeRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(userSwiped))
swipeRecognizer.numberOfTouchesRequired = 1
swipeRecognizer.direction = .left
let panRecognizer = UIPanGestureRecognizer(target: self, action: #selector(userPanned))
panRecognizer.minimumNumberOfTouches = 1
view.addGestureRecognizer(swipeRecognizer)
view.addGestureRecognizer(panRecognizer)
}
@objc private func userSwiped(recognizer: UISwipeGestureRecognizer) {
}
@objc private func userPanned(recognizer: UIPanGestureRecognizer) {
}
}
、私はジェスチャー認識装置を作成し、私が欲しい方のビューに追加します。 viewDidLoad
でこれを行う必要はありません。ターゲットを設定することで、ジェスチャが認識されたときに呼び出されるメソッドを設定します。レコグナイザは、自分自身をカスタム関数の引数として自動的に渡し、state
のプロパティなどを照会できます。ジェスチャレコグナイザごとにこのプロセスがどのように異なるかを理解するために、ドキュメントを読む必要があります。
+0
ありがとうございます。良い例え。 –
関連する問題
- 1. ジェスチャ検出器
- 2. スワイプのジェスチャー方向を検出する方法は?
- 3. Libgdxでスワイプ方向を検出する方法は?
- 4. iOS 7 uinavigationcontrollerスワイプを検出する方法は?
- 5. UITableViewのドラッグ終了イベントを検出する方法は?
- 6. justTouched()をトリガーせずにLibgdxでスワイプを検出する方法?
- 7. エスプレッソのアクティビティ間でスワイプをテストする方法は?
- 8. HTML5 Video:タイムラインのドラッグを検出する
- 9. bxsliderデスクトップブラウザでマウスをスワイプ(クリック+ドラッグ)する
- 10. AndroidモバイルサイトのオブジェクトのJqueryスワイプ検出
- 11. UICollectionViewでスワイプを検出します。
- 12. WKWebViewにジェスチャを追加する方法
- 13. スクロールとズームのジェスチャを区別する方法
- 14. Android - 縦スワイプと横スワイプで2Dギャラリーを構築する方法
- 15. アンドロイドのリスト間でドラッグ&ドロップを実装する方法は?
- 16. UIScrollViewは底面のスワイプのみを検出します
- 17. スワイプは検出できますが、エッジからスワイプは検出できません。
- 18. 移動するボックス間の衝突を検出する方法
- 19. スワイプで1時間書く方法2.2?
- 20. Eclair(2.1)でピンチズームの開始と終了のジェスチャを検出することはできますか?
- 21. オブジェクトの周りの自由空間を検出する方法
- 22. 2つのgitリポジトリ間の競合を検出する方法。
- 23. Flex viewNavigatorとスワイプ:ジェスチャーと効果的なスワイプの間の遅延
- 24. 1つまたは複数のファイルのドラッグを検出する
- 25. 時間の経過とともにキーイベントを検出する方法JavaFX
- 26. 3秒間閉じた目を検出する方法は?
- 27. アンドロイドで夏時間の移行を検出する方法
- 28. NDependで名前空間のサイクル検出をカスタマイズする方法
- 29. ユーザー間の切り替えを検出する方法
- 30. ボタンの上にホバー/スワイプを検出する
最も簡単な方法は、UIGestureRecognizersを使用して、OSに区別させる方法です。 – dfd
@dfdありがとうございました –