سؤال

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

هل كانت مفيدة؟

المحلول

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
    }
}

نصائح أخرى

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
            }
        }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top