 <p>I guess you pass the wrong <code>CGPoint</code> coordinate to the <code>hitTest:withEvent:</code> method causing wrong behavior if the scroll view is scrolled. </p> <p>The coordinate you pass to this method must be in the target views coordinate system. I guess your coordinate is in the <code>UIScrollView</code>'s superview's coordinate system. </p> <p>You can convert the coordinate prior to using it for the hit test using <code>CGPoint hitPoint = [scrollView convertPoint:yourPoint fromView:scrollView.superview]</code>. </p> <p><br/> In your example you let the container view perform the hit testing, but the container can only see &amp; hit the <strong>visible portion</strong> of the scroll view and thus your hit fails.</p> <p>In order to hit subviews of the scroll view which are outside of the visible area you have to perform the hit test on the scroll view directly:</p> <pre><code>UIView *firstSubview = [_scrollView hitTest:number1RectanglePoint withEvent:nil]; UIView *fifthSubview = [_scrollView hitTest:number5RectanglePoint withEvent:nil]; </code></pre>