在UIPageViewController中禁用/启用滚动

我有一个viewControllerUIPageViewControllerinheritance( @interface PageScrollViewController : UIPageViewController )现在我想知道如何启用和禁用从UIPageViewController滚动? 当使用UIScrollView你会做setScrollEnabled:NOself.view.userInteractionEnabled = NO; 是不是一个选项,因为这阻止整个UIView而不是滚动。

编辑这是在PageScrollViewController : UIPageViewController类:

 if ([[notification name] isEqualToString:@"NotificationDisable"]){ NSLog (@"Successfully received the disable notification!"); for (UIGestureRecognizer *recognizer in self.gestureRecognizers) { recognizer.enabled = NO; } } 

尝试循环gestureRecognizersUIPageViewController并禁用/启用它们:

 for (UIGestureRecognizer *recognizer in pageViewController.gestureRecognizers) { recognizer.enabled = NO; } 

注意:在这个SOpost中 ,这个方法只适用于UIPageViewControllerTransitionStylePageCurl 。 你可能想尝试这个解决scheme (虽然它似乎有点hacky)。

或者你可以在你的PagingVC中强制closures分页:

 self.delegate = nil; self.dataSource = nil; 

并为了再次启用:

 self.delegate = self; self.dataSource = self; 

我做了以下事情(我有一个持有UIPageViewController的控制器)。

 self.pageController.view.userInteractionEnabled = NO; 

而当你想启用滑动或滚动,只需启用用户交互。