I have an UIPagerView with its View Controllers. Each UIViewController have an horizontal UIScrollView (with 3 horizontal images, for example). See the image for reference.
When i do a horizontal swipe gesture on the scrollview, the scrollview scrolls and the pagerview doesnt. When i do a horizontal swipe gesture in any view that is not the scrollview, the pagerview scrolls its child view controllers. Everything is fine by now.
What i want to achieve is: when i scroll the scrollview to the max value (its contentSize), i want the pagerview to scroll its viewcontrollers.
To achieve what you have described, you need to set the pagerViewController as a delegate of your ScrollView.
Assuming that your ScrollView is a PageViewController, first make PagerViewController a PageViewControllerDelegate
@interface PagerViewController: UIViewController <UIPageViewControllerDelegate>
Then set the PagerViewController as the delegate of your ScrollView. Do this in viewDidLoad() method of PagerViewController
-(void) viewDidLoad
{
//some other stuff
self.scrollView.delegate = self
}
then implement didFinishAnimating
delegate method in PagerViewController. It will be called whenever you scroll your scrollView controller, and you can figure out if its the last page you just scrolled by looking at the index of the latest controller. If it is, then trigger the code to scroll the PagerViewController to scroll on to the next view.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With