【问题标题】:UIPagerView scroll problems with UIScrollViewUIScrollView 的 UIPagerView 滚动问题
【发布时间】:2015-10-27 10:28:46
【问题描述】:
我有一个带有视图控制器的 UIPagerView。每个 UIViewController 都有一个水平的 UIScrollView(例如,有 3 个水平图像)。请参阅图片以供参考。
当我在滚动视图上执行水平滑动手势时,滚动视图滚动而分页视图不滚动。当我在不是滚动视图的任何视图中执行水平滑动手势时,分页视图会滚动其子视图控制器。现在一切都很好。
我想要实现的是:当我将滚动视图滚动到最大值(它的 contentSize)时,我希望页面视图滚动它的视图控制器。
请问,我怎样才能做到这一点??
【问题讨论】:
标签:
ios
objective-c
uiscrollview
uipageviewcontroller
【解决方案1】:
要实现您所描述的,您需要将 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 以滚动到下一个视图。