Ios 以编程方式滚动UIPageViewController
我很难通过编程方式滚动嵌入主Ios 以编程方式滚动UIPageViewController,ios,objective-c,swift,Ios,Objective C,Swift,我很难通过编程方式滚动嵌入主UIViewController中的UIPageViewController,以下是我的屏幕结构: 在屏幕底部,我使用UIPageViewController显示2个控制器 在我的屏幕顶部有一个UICollectionView,它不是pageViewController的一部分。 出于某些需要,我将collectionView的滚动与pagerViewController的滚动同步 现在我有了一个pagerViewController,当用户滚动到我的collecti
UIViewController
中的UIPageViewController
,以下是我的屏幕结构:
在屏幕底部,我使用UIPageViewController
显示2个控制器
在我的屏幕顶部有一个UICollectionView
,它不是pageViewController
的一部分。
出于某些需要,我将collectionView
的滚动与pagerViewController
的滚动同步
现在我有了一个pagerViewController
,当用户滚动到我的collectionView
时,它会滚动。我正在使用:pagerScrollView.setContentOffset(CGPoint(…)
来实现这一点
我的问题是UIPageViewController
使用其GestureRecognitors
属性来正确调用其数据源方法。但是,当使用pagerScrollView.setContentOffset
时,不会调用其数据源方法,因此不提供下一个控制器
这些不称为:
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
我试图调用pagerController。在ScrollView中的setViewControllers
将开始拖动
方法,但控制器立即更改,UIPageViewController
不会保留正在传输的控制器
我的问题如下:
有没有办法告诉UIPageViewController
下一个/之前是哪个控制器而不丢失当前转换的控制器?或者有没有办法使用我的寻呼机上的setContentOffset
方法触发数据源方法
当滚动到pagerViewController
时,显然一切都正常,因为调用了它的数据源方法
有什么想法吗?如果你只有两个控制器,我建议不要使用
UIPageViewController
。相反,使用标准的UIScrollView
,将这两个控制器添加为子VCs,并将它们的视图添加到滚动视图。最后,我用UIScrollView
替换寻呼机来解决这个问题,它工作得很好。我认为使用UIPageViewController
无法实现我想要的功能。谢谢@DonMag。