From 8ac90da2af6c6387045374b428f96bc374e99d3f Mon Sep 17 00:00:00 2001 From: wvqigescy Date: Wed, 9 Apr 2025 22:40:22 +0800 Subject: [PATCH] feat(ios): disable gesture recognizer when scrollEnabled=false --- ios/Fabric/RNCPagerViewComponentView.mm | 4 ++++ ios/RNCPagerView.m | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ios/Fabric/RNCPagerViewComponentView.mm b/ios/Fabric/RNCPagerViewComponentView.mm index 652a5c12..b1b80a8f 100644 --- a/ios/Fabric/RNCPagerViewComponentView.mm +++ b/ios/Fabric/RNCPagerViewComponentView.mm @@ -420,6 +420,10 @@ + (ComponentDescriptorProvider)componentDescriptorProvider return concreteComponentDescriptorProvider(); } +- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { + const auto &viewProps = *std::static_pointer_cast(_props); + return viewProps.scrollEnabled; +} - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { diff --git a/ios/RNCPagerView.m b/ios/RNCPagerView.m index 507b45d8..a8714bd8 100644 --- a/ios/RNCPagerView.m +++ b/ios/RNCPagerView.m @@ -474,6 +474,10 @@ - (NSString *)determineScrollDirection:(UIScrollView *)scrollView { return scrollDirection; } +- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { + return self.scrollEnabled; +} + - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { // Recognize simultaneously only if the other gesture is RN Screen's pan gesture (one that is used to perform fullScreenGestureEnabled)