メインビューで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. Swift UISwipeGestureRecognizer斜めのスワイプを検出する方法は?
- 4. Libgdxでスワイプ方向を検出する方法は?
- 5. iOS 7 uinavigationcontrollerスワイプを検出する方法は?
- 6. UITableViewのドラッグ終了イベントを検出する方法は?
- 7. justTouched()をトリガーせずにLibgdxでスワイプを検出する方法?
- 8. エスプレッソのアクティビティ間でスワイプをテストする方法は?
- 9. TableViewジェスチャ認識機能スワイプ削除行を有効にする
- 10. HTML5 Video:タイムラインのドラッグを検出する
- 11. MouseArea Qtの左または右のスワイプを検出するQML
- 12. システム時間の時間変化を検出する方法
- 13. bxsliderデスクトップブラウザでマウスをスワイプ(クリック+ドラッグ)する
- 14. AndroidモバイルサイトのオブジェクトのJqueryスワイプ検出
- 15. UWPで保持と削除ジェスチャを実装する方法は?
- 16. WKWebViewにジェスチャを追加する方法
- 17. スクロールとズームのジェスチャを区別する方法
- 18. UICollectionViewでスワイプを検出します。
- 19. アンドロイドのリスト間でドラッグ&ドロップを実装する方法は?
- 20. 列間で特定のセルをドラッグ&ドロップする方法は?
- 21. Android - 縦スワイプと横スワイプで2Dギャラリーを構築する方法
- 22. スワイプとスワイプを無効にする方法
- 23. UIScrollViewは底面のスワイプのみを検出します
- 24. Eclair(2.1)でピンチズームの開始と終了のジェスチャを検出することはできますか?
- 25. 移動するボックス間の衝突を検出する方法
- 26. 一定期間の開始と終了を検出する方法は?
- 27. スワイプは検出できますが、エッジからスワイプは検出できません。
- 28. スワイプで1時間書く方法2.2?
- 29. 2つのgitリポジトリ間の競合を検出する方法。
- 30. オブジェクトの周りの自由空間を検出する方法
最も簡単な方法は、UIGestureRecognizersを使用して、OSに区別させる方法です。 – dfd
@dfdありがとうございました –