最后我用了我自己的滑动手势。
- 首先,从UIPageViewController中删除现有的滑动手势
用于(UIGestureRecognizer *_pageViewController.gestureRecognizers中的识别器){ recognizer.enabled = NO;}
- 然后向UIPageViewController中添加您自己的滑动手势识别器
setDirection:(UISwipeGestureRecognizerDirectionLeft);* rightRecognizer = [UISwipeGestureRecognizer alloc initWithTarget:self action:@selector(handleRightSwipe:)];rightRecognizer UISwipeGestureRecognizer _pageViewController.view addGestureRecognizer:rightRecognizer;UISwipeGestureRecognizer * leftRecognizer = [UISwipeGestureRecognizer alloc initWithTarget:self action:@selector(handleLeftSwipe:)];leftRecognizer setDirection:(UISwipeGestureRecognizerDirectionRight);_pageViewController.view addGestureRecognizer:leftRecognizer;-(HandleRightSwipe):(id)发件人{ //您在这里的滑动处理程序//注意:您现在需要手动调用didFinishAnimating //手动计算next/prev控制器,还应该考虑方位太过UIViewController * nextController = _modelController pageViewController:_pageViewController __weak weakSelf = self;__weak UIPageViewController * wController = _pageViewController;[:@nextController方向:_pageViewController动画:YES:^(BOOL已完成){ [weakSelf页面查看控制器:wController已完成动画:YES previousViewController:@_pageViewController存在-控制器已完成:YES];};}}
另外,您可以尝试不删除现有的滑动手势,如果现有的识别器触发,它似乎不会调用您的自定义滑动手势,这样当您拖动页面的角时也会有很好的动画(如果删除所有识别器,它将丢失)。