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

Was it helpful?

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
scroll top