UIPagerView滚动UIScrollView的问题

gui*_*ini 8 objective-c uiscrollview ios uipageviewcontroller

我有一个带有View Controllers的UIPagerView.每个UIViewController都有一个水平的UIScrollView(例如,有3个水平图像).查看图片以供参考.

在此输入图像描述

当我在滚动视图上执行水平滑动手势时,滚动视图会滚动并且pagerview不会.当我在任何不是滚动视图的视图中执行水平滑动手势时,pagerview会滚动其子视图控制器.现在一切都很好.

我想要实现的是:当我将scrollview滚动到最大值(其contentSize)时,我希望pagerview滚动其viewcontrollers.

拜托,我怎么能实现这个?

dor*_*ian 4

为了实现您所描述的目的,您需要将 pagerViewController 设置为 ScrollView 的委托。

假设你的ScrollView是一个PageViewController,首先让PagerViewController成为一个PageViewControllerDelegate

@interface PagerViewController: UIViewController <UIPageViewControllerDelegate>
Run Code Online (Sandbox Code Playgroud)

然后将 PagerViewController 设置为 ScrollView 的委托。在 PagerViewController 的 viewDidLoad() 方法中执行此操作

-(void) viewDidLoad
{ 
   //some other stuff
   self.scrollView.delegate = self
}
Run Code Online (Sandbox Code Playgroud)

然后在PagerViewController中实现didFinishAnimating委托方法。每当您滚动scrollView控制器时都会调用它,并且您可以通过查看最新控制器的索引来确定它是否是您刚刚滚动的最后一页。如果是,则触发代码滚动 PagerViewController 以滚动到下一个视图。