Can I disable the UIPageViewController's page border gesture recognizers? And keep the swipe one?
-
26-10-2019 - |
Question
I see that I can remove all of the UIPageViewController gestures, but what if I only want to remove the tap gesture on the edges? And keep the swipe gesture? Is this possible?
Thanks
Solution
Try looping through pageViewController.gestureRecognizers
, disabling any that are tap recognizers.
Objective-C:
for (UIGestureRecognizer *recognizer in pageViewController.gestureRecognizers) {
if ([recognizer isKindOfClass:[UITapGestureRecognizer class]]) {
recognizer.enabled = NO;
}
}
Swift:
for recognizer in pageViewController.gestureRecognizers {
if recognizer is UITapGestureRecognizer {
recognizer.isEnabled = false
}
}
OTHER TIPS
If you need to do this in Swift:
for recognizer in pageViewController.gestureRecognizers as! [UIGestureRecognizer] {
if recognizer is UITapGestureRecognizer {
recognizer.enabled = false
}
}
SWIFT 4.2 add to viewDidLoad()
for recognizer in self.gestureRecognizers {
if recognizer is UITapGestureRecognizer {
recognizer.isEnabled = false
}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow