代码之家  ›  专栏  ›  技术社区  ›  guilherme.minglini

UIPagerView使用UIScrollView滚动问题

  •  8
  • guilherme.minglini  · 技术社区  · 9 年前

    我有一个带有视图控制器的UIPagerView。每个UIViewController都有一个水平UIScrollView(例如,有3个水平图像)。请参见图像以供参考。

    enter image description here

    当我在滚动视图上做水平滑动手势时,滚动视图滚动,页面视图不滚动。当我在非滚动视图的任何视图中做水平滑动手势时,pagerview会滚动其子视图控制器。现在一切都很好。

    我想实现的是:当我将滚动视图滚动到最大值(其contentSize)时,我希望pagerview滚动其视图控制器。

    拜托,我怎么才能做到这一点??

    1 回复  |  直到 9 年前
        1
  •  4
  •   dorian    9 年前

    要实现所描述的内容,需要将pagerViewController设置为ScrollView的代理。

    假设ScrollView是PageViewController,首先将PagerViewController设置为PageViewControllerDelegate

    @interface PagerViewController: UIViewController <UIPageViewControllerDelegate>
    

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

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

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