現在のビューの外にタップを検出する方法はありますか?私はhitTestメソッドを使って何かを実装しようとしたが、うまくいきませんでした。現在のビューの外にあるタップを検出します
4
A
答えて
0
あなたはそれがあなたのビューの中にあった場合、タッチが背景ビューにあったが、「偽」の場合のみ「true」を返します
extension YourViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
shouldReceive touch: UITouch) -> Bool {
return (touch.view === self.view)
}
}
UIGestureRecognizerDelegateプロトコルを使用することができます。
注:アイデンティティ演算子=== touch.viewとself.viewを比較します。両方の変数が同じオブジェクトを参照しているかどうかを知りたい。
viewDidLoad()では、gestureRecognizerを作成してデリゲートを設定します。 、touchesBeganであなたがタッチセットから第1のタッチオブジェクトを取得するために持っていて、ビューでそのタッチの位置を確認する必要がされて何をする必要があり
let gestureRecognizer = UITapGestureRecognizer(target: self,action: #selector(yourActionMethod))
gestureRecognizer.cancelsTouchesInView = false
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
5
(あなたが望むその内側タッチを検出する)。
ビューでタッチの位置を取得した後、currentView(タップが内側か外側かをチェックする必要があるかどうか)を確認する必要があります。
現在のビューのフレームにタッチ位置が含まれている場合は、ビューの内側にタッチが発生したことを意味します。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
guard let location = touch?.location(in: self.view) else { return }
if !currentView.frame.contains(location) {
print("Tapped outside the view")
}else {
print("Tapped inside the view")
}
}
希望に役立つ!
関連する問題
- 1. ビューの外側のタップを検出するネイティブで反応する
- 2. 現在ビューポートにある要素を検出します
- 3. 現在実行中のブラウザの現在のWebアプリケーションを検出します。
- 4. UIImageViewの外でタップする人を検出する方法
- 5. エラーメッセージのある現在のビューのレンダリング
- 6. ビュー外のUITouchを検出する
- 7. "このビューを検索"フルテキストを検索し、現在のビューでクエリを送信
- 8. iOS UITests - 現在実行中にXCUIElementがタップされているかどうかを検出します
- 9. 現在のビュー
- 10. 検出していない画像ビューをタップ
- 11. SectionListコンポーネントの子であるビューをタップします。
- 12. ユーザーがビューの外にタップしたときにビューを閉じる
- 13. divの現在の方向を検出
- 14. VirtualPathが現在のアプリケーションルートの外側にありました
- 15. jQuery - アイテムが現在ビューポートの外にあるかどうかを検出する方法?
- 16. 現在のタップを無効にするTab(UITabBarController)iPhoneアプリケーション
- 17. Postgres:現在のトランザクションレベルを検出
- 18. ルータ出口の外に現在のURLを取得する
- 19. PHPで現在のIISのバージョンを検出するには?
- 20. ビューの外で開始したタッチを検出する
- 21. 現在のフォアグラウンドアクティビティを検出してリロードする
- 22. 現在のビューは私のウィンドウのaganに追加され、カスタムのタブバーをタップすると
- 23. 現在のビューを表示したビューを確認する
- 24. タップ機能を呼び出すビューを確認します
- 25. Django - 現在のユーザー以外のユーザーのリストをビューからリダイレクト
- 26. Swift- UITableViewCellのいくつかのタップを検出します。
- 27. EditTextでタップした単語を検出する方法はありますか
- 28. 現在のビューを取得
- 29. ビューとコントローラの外部から現在のコントローラ名を取得
- 30. Apiコントローラで現在のブラウザをどのように検出しますか?
あなたはtouchesBeganを試しましたか? – ankit
現在のビューを含むビューにtapGestureを追加することができます。 – Larme
私はこれをやっています:https://stackoverflow.com/a/48790850/7132300 – algrid