I know this is an old question, but I had a similar problem, and the approved answer (setting canCancelContentTouches to false in the scroll and isExclusiveTouch to true in the review) did not work for me.
After some experimentation, I found that just overriding gestureRecognizerShouldBegin(_:) in my subview to return false solved the problem:
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { return false }
source share