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