I'm try to develop code part, to check whether mine tap is inside a view or outside a view, i tried with pointInside method. If A is main View Controller and B is subView of A, How can i get to know that user tapped inside B.
Apple explains it very well in Responder Chain. You can add the following function to your view controller:
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if let firstTouch = touches.first {
let hitView = self.view.hitTest(firstTouch.location(in: self.view), with: event)
if hitView === viewB {
print("touch is inside")
} else {
print("touch is outside")
}
}
}
In the tapGestureRecognizer
callback you can use the method tapGesture.location(in: A)
in order to fetch the x, y position of the A referral system. Then you can use B.frame.contains(location)
.
If true, then the tap is in B.
Depending on what you want to do there are simpler approaches to the problem. For example, you could add the gestureRecognizer
to B instead of A, if you are interested just in touches inside B.
I don't know which are exactly your needs. With more info I could give you better advices.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With