I have a view controller with this hierarchy:
View Controller:
- UIScrollView (scrollable horizontally)
- UITableView (scrollable vertically)
I want to forward the vertical scrolls from my UIScrollView
to the sibling UITableView
, so that when the user scrolls up on the UIScrollView
, the UITableView
will scroll up instead. What would be the best way to do it?
I have tried these:
- Detecting the vertical scroll in
scrollViewDidScroll
, it doesn't get called because the contentOffset of the scroll view does not change. - Subclassing the
UIScrollView
and overridingtouchesMoved
, I can't forward the touches to the table view because I don't have a reference to it in this class.
This will make your scroll simultaneously with
UITableView
andUIScrollView
and apply @Stephen Johnson's blockIf the tableview is contained within the scroll view I believe you can set up the scroll view's gesture recognizers to respond only if the table view's gesture recognizers fail. I haven't had a chance to try this, but you should be able to set up a dependency between the gestures for each of the views.