How to have a UIScrollView scroll and have a gesture recognizer?

ios, objective-c, uiscrollview, uiview

Solution

Make a subclass of `UIScrollView`. Add this method in your new subclass

- (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer 
{
    return YES;
}

Make your scrollView class to your new scrollview subclass.

Problem

I have a gesture recognizer on a UIScrollView, however it hardly ever gets called as the UIScrollView eats all the gestures. I partially got around this issue with this line: `[scrollView.panGestureRecognizer requireGestureRecognizerToFail:rightSwipe];` however, this line results in my recognizer always being accepted (the desired behavior) and the scroll view not scrolling. That is, when you scroll, the recognizer is accepted but the view doesn't scroll. How can I get around this, or is there an alternate solution? Thanks!

Original source

Related problems