我有一个带有View Controllers的UIPagerView.每个UIViewController都有一个水平的UIScrollView(例如,有3个水平图像).查看图片以供参考.
当我在滚动视图上执行水平滑动手势时,滚动视图会滚动并且pagerview不会.当我在任何不是滚动视图的视图中执行水平滑动手势时,pagerview会滚动其子视图控制器.现在一切都很好.
我想要实现的是:当我将scrollview滚动到最大值(其contentSize)时,我希望pagerview滚动其viewcontrollers.
拜托,我怎么能实现这个?
解决方法
要实现您所描述的内容,您需要将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以滚动到下一个视图.