私はこの機能を実装していました。navigationController.viewでタッチを検出するにはどうすればよいですか?
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let point = touches.first?.location(in: self.view) else { return }
for i in 0..<paths.count {
if paths[i].contains(point) { addViews(selectedView: i); break }
}
}
私の設計者は、ナビゲーションバーをオーバーレイするために追加するビューの一部を作りたいと決めました。問題は、代わりにnavigationController.viewにビューを追加した後、私はもはやタッチを検出できなくなることです。私は場所(:self.navigationController.view)を試して、それは動作しませんでした。誰かが私のために簡単な答えを持っている無限の別のもののうさぎの穴を下に行く前に、?
を。 TapRecognizerはビューでのみ機能し、特にUIBezierPathを使用してタップを検出するのは、同じビュー内の複数のレイヤーであるためです。写真を編集して投稿して、理解しやすくします。 – Sethmr
クールで、レイヤーをviewController.viewに戻し、ナビゲーションバーを非表示にするか、またはnavigationControllerからviewControllerを削除することがあります。 – FryAnEgg