私は、別のViewControllerの上にある透明なViewControllerからタッチを渡す方法を探しています。私はすでに、次の記事に出くわした:他のViewControllerへのタッチをクリアする
How to ignore touch events and pass them to another subview's UIControl objects?
私はそれらの先端に続くが、それは、残念ながら動作させることができませんでした。 collectionview外で、それは新しいレコードを実行する必要がありpassThroughViewの背後にあるrecordbuttonをタップすると
VideoViewController (note: clear ViewController can see the buttons underneath)
| passThroughView (note: UIView that is using the PassThroughView subclass)
| collectionView
CameraViewController
| controlContainer
| | recordButton
:
私は上から下へ、次のビュー構造を得ました。問題は、次のコードで、私はそれを起こらせることができないということです。
class PassThroughView: UIView {
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let hitView = super.hitTest(point, with: event)!
let cameraVC = CameraViewController()
if hitView == self {
return cameraVC.recordButton
}
return hitView
}
}
とすぐに私のpassThroughViewは、私はif文の印刷を取得するタップを取得しますが、それは他のViewControllersボタンに私のタッチを返さないよう。
ここで私は何が間違っていますか?
私はこのトリックを知っていましたが、問題は私がこれを使用するとボタンタップ効果が消えてしまい、すべてをシミュレートする必要があるということです。他のViewControllerのレコードボタンをターゲットにする方法はありませんか? – Wouter125
ボタンのタッチイベントをキャッチするために、これはあなたの状況を処理することができると思う:http://stackoverflow.com/a/3348532/661022 – pedrouan
私は努力に感謝しますが、残念ながらそれは私が探しているものではありません。これは、私の場合でさえ持っていないタップ感覚認識装置を追加します。私は私のタッチを無視し、その下のviewcontrollerにそれらを渡すviewcontrollerが必要です。盗聴認識装置ではありません。それでも、私は私のCollectionViewで対話性を維持する必要があります – Wouter125