我怎么知道UIPageViewController是否向前翻转或反转?

sha*_*oga 18 ios uipageviewcontroller

我有一个UIPageViewController,我只是无法弄清楚如何知道用户转向页面的方向,以便我可以适当地设置页数.

谢谢Shani

小智 32

正如Hejazi所说

在手势驱动的转换完成后,将 调用此委托方法:

pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:

应该澄清的是,completedYES该页是否完全导通,并将于NO如果页面实际上并没有打开.该NO情况发生,例如,当用户刚拉起页面的角落,然后把它背下来,而不翻转页面.

这是您要实现的概念:

- (void)pageViewController:(UIPageViewController *)pvc didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
    // If the page did not turn
    if (!completed)
    {
        // You do nothing because whatever page you thought 
        // the book was on before the gesture started is still the correct page
        return;
    }

    // This is where you would know the page number changed and handle it appropriately
    // [self sendPageChangeNotification:YES];
}
Run Code Online (Sandbox Code Playgroud)


Hej*_*azi 7

在手势驱动的转换完成后,将调用此委托方法:

pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
Run Code Online (Sandbox Code Playgroud)

因此通过比较previousViewControllers参数,pageViewController.viewControllers您可以知道方向.


jon*_*oll 0

当用户翻页时,setViewControllers:将调用 UIPageViewController 的方法。此方法接收一个类型参数,UIPageViewControllerNavigationDirection该参数将为您提供所需的信息。

  • 至少在 iOS 6 上,如果过渡是手势启动的,则不会调用“-setViewControllers:direction:animated:completion:”。我刚刚尝试过。 (15认同)