The solution is to subclass View A (if it's not a custom view already) and override pointInside:withEvent
.
Return YES
if the specified point is inside one of View A's sub-views, or NO
otherwise. When pointInside:withEvent
returns NO
the system will continue to try other views until it finds one that claims the point is inside it, then it will call hitTest:withEvent
to see which inner-view to send the touches to (the default behaviour).