如何在 IOS Swift 中捕获页面滑动事件

How to catch page swipe event in IOS Swift

我使用 UIPageViewController IOS Swift 开发了滑动页面。当最后一页出现时,我需要做一些事情。如何捕捉页面滑动事件。

import UIKit

class ViewController: UIViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate{

  var pageViewController : UIPageViewController!
  var pageCount = 3

  func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
    //Return after viewcontroller
  }

  func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
    //Return before viewcontroller
  }


  func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
    return pageCount
  }


  func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
    return 0
  }

}

在你定义的方法中可能会参与这个,像这样,

func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
    let index : NSInteger = arrproductdetial.indexOfObject(viewController) as NSInteger
    if (index == arrproductdetial.count-1) {
        // Do whatever you are trying to do for last page
    }
    else if (index == arrproductdetial.count) {
        return nil; //the page after last page
    }
}

您刚刚 return 在

中计算 pageCount

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int

改为return pageCount.count如下图:

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int 
{
    return pageCount.count
}

通过这个你可以得到总计数,你也可以得到最后一个索引。我想这消除了你的疑虑。快乐编码!!!