I've got a UIScrollView covered with a custom UIView which desperatly needs to listen to all the touch events that happen inside of him.
At first, all I was getting was touchesBegan: and touchesCancelled: events. No touchesMoved:, no touchesEnded:. In fact, all the dragging gestures where being canceled by the above UIScrollView. This was solved by the following setting:
_scrollView.canCancelContentTouches = NO;
Now, the behaviour changes depending on the "length in time" of the first touch on the UIView. If it's short, then the relative dragging is managed as it was a scroll for the UIScrollView. If it's long, then I'm getting the touchesMoved: events inside my UIView.
What I want is to always receive touchesMoved: inside my UIView. How can I make it?