UIPagerView滚动UIScrollView的问题

时间:2015-08-04 20:51:15

标签: ios objective-c uiscrollview uipageviewcontroller

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

enter image description here

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

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

请问,我怎么能实现这个?

1 个答案:

答案 0 :(得分:4)

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

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

@interface PagerViewController: UIViewController <UIPageViewControllerDelegate>

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

-(void) viewDidLoad
{ 
   //some other stuff
   self.scrollView.delegate = self
}

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