title: Should superview's gesture cancel subview's gesture in iOS 7?
body: <p>For several years now I've operated under the assumption that if a superview and its subview both have gesture recognizers, the subview would receive the touches first and cancel out the superview's gesture. Until iOS 7 this assumption never failed me, allowing me to add gestures to subviews confident the superview's gestures wouldn't interfere. But in iOS 7, the superview will randomly receive the touches first and cancel out the subview's gestures. This happens somewhat rarely, which made the problem hard to spot. </p>
  
  <p>I first experienced this problem as buttons that couldn't be tapped using <code>UITapGestureRecognizer</code>... again, very rarely.  Usually the buttons would work until they didn't.  Made you kind of question your sanity. So I rolled my own <code>TapGestureRecognizer</code> and discovered that superview taps were canceling their subview's taps on occasion. It's never done this in any previous version of iOS, but I'm wondering if this behavior was simply never promised.</p>
  
  <p><strong>I thought the subview's gesture was supposed to cancel it's superview's gesture (unless otherwise specified by a delegate).  Is this wrong or is this a bug?</strong></p>
  
  <p><em>Please Note:</em> I'm not asking how to handle the situation. I'm asking if anyone knows whether my assumption is incorrect. I'm already rearranging views, dynamically adding/removing gestures and creating rather complex implementations of <code>gestureRecognizer:shouldReceiveTouch:</code> to remedy the situation. It's not fun, but I can work around the problem.</p>