在UIPageViewController中禁用/启用滚动
我有一个viewController
从UIPageViewController
inheritance( @interface PageScrollViewController : UIPageViewController
)现在我想知道如何启用和禁用从UIPageViewController
滚动? 当使用UIScrollView
你会做setScrollEnabled:NO
和self.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; } }
尝试循环gestureRecognizers
的UIPageViewController
并禁用/启用它们:
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;
而当你想启用滑动或滚动,只需启用用户交互。