iOS UIPageControl在左右点击时改变行为

时间:2017-05-17 07:22:49

标签: ios iphone swift uipageviewcontroller uipagecontrol

我使用的是默认UIPageControlUIPageViewController是以编程方式创建的。 dataSourcedelegate方法也已正确配置。

我正在尝试实现与iOS主页中相同的行为。

点击右边应该转到下一页。 点击左侧应该转到上一页。

这些行为是默认的。一切正常除外 当在最后一页上点击时,它会转到第一页。即无限循环。同样适用于第一页和左侧点击,它需要最后一页。

我已在viewControllerBeforeviewControllerAfter方法中阻止了无限循环以进行滑动手势。

func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?

调查结果:

  • 点击右侧的最后一页,调用viewControllerBefore
  • 点击左侧时,在第一页上调用viewControllerAfter

无论如何都要处理这个案子?我在iOS主屏幕上看到了预期的行为。

1 个答案:

答案 0 :(得分:0)

当您的网页索引为nil0时,只需在上述方法中返回n - 1即可。其中n是总页数。

示例:

func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {

    // Check if index is zero, then return nil   
}

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
        // Check if index is equal to total page count, then return nil   
}