From 0e456d66e33fa68414db34b945e6fac3e9b6e7ee Mon Sep 17 00:00:00 2001 From: td-tomasz-joniec <109506928+td-tomasz-joniec@users.noreply.github.com> Date: Wed, 13 Sep 2023 09:48:00 +0200 Subject: [PATCH] Revert "feat(ios): back gesture with full screen swipe (#705)" This reverts commit 769a3a21500fbe40c1909c9bf50f724c76a5b435. --- ios/Fabric/RNCPagerViewComponentView.mm | 33 +------------------------ ios/ReactNativePageView.m | 30 +--------------------- 2 files changed, 2 insertions(+), 61 deletions(-) diff --git a/ios/Fabric/RNCPagerViewComponentView.mm b/ios/Fabric/RNCPagerViewComponentView.mm index 8efd1baf..c636b26d 100644 --- a/ios/Fabric/RNCPagerViewComponentView.mm +++ b/ios/Fabric/RNCPagerViewComponentView.mm @@ -15,10 +15,7 @@ using namespace facebook::react; -@interface RNCPagerViewComponentView () - -@property(nonatomic, assign) UIPanGestureRecognizer* panGestureRecognizer; - +@interface RNCPagerViewComponentView () @end @implementation RNCPagerViewComponentView { @@ -66,11 +63,6 @@ - (instancetype)initWithFrame:(CGRect)frame _destinationIndex = -1; _layoutDirection = @"ltr"; _overdrag = NO; - UIPanGestureRecognizer* panGestureRecognizer = [UIPanGestureRecognizer new]; - self.panGestureRecognizer = panGestureRecognizer; - panGestureRecognizer.delegate = self; - [self addGestureRecognizer: panGestureRecognizer]; - } return self; @@ -406,29 +398,6 @@ + (ComponentDescriptorProvider)componentDescriptorProvider } -- (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) - if (gestureRecognizer == self.panGestureRecognizer && [NSStringFromClass([otherGestureRecognizer class]) isEqual: @"RNSPanGestureRecognizer"]) { - UIPanGestureRecognizer* panGestureRecognizer = (UIPanGestureRecognizer*) gestureRecognizer; - CGPoint velocity = [panGestureRecognizer velocityInView:self]; - BOOL isLTR = [self isLtrLayout]; - BOOL isBackGesture = (isLTR && velocity.x > 0) || (!isLTR && velocity.x < 0); - - if (self.currentIndex == 0 && isBackGesture) { - scrollView.panGestureRecognizer.enabled = false; - } else { - const auto &viewProps = *std::static_pointer_cast(_props); - scrollView.panGestureRecognizer.enabled = viewProps.scrollEnabled; - } - - return YES; - } - const auto &viewProps = *std::static_pointer_cast(_props); - scrollView.panGestureRecognizer.enabled = viewProps.scrollEnabled; - return NO; -} - @end Class RNCViewPagerCls(void) diff --git a/ios/ReactNativePageView.m b/ios/ReactNativePageView.m index d7b6c3a4..a73f578c 100644 --- a/ios/ReactNativePageView.m +++ b/ios/ReactNativePageView.m @@ -9,9 +9,7 @@ #import "RCTOnPageSelected.h" #import -@interface ReactNativePageView () - -@property(nonatomic, assign) UIPanGestureRecognizer* panGestureRecognizer; +@interface ReactNativePageView () @property(nonatomic, strong) UIPageViewController *reactPageViewController; @property(nonatomic, strong) RCTEventDispatcher *eventDispatcher; @@ -47,10 +45,6 @@ - (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher { _cachedControllers = [NSHashTable hashTableWithOptions:NSHashTableStrongMemory]; _overdrag = NO; _layoutDirection = @"ltr"; - UIPanGestureRecognizer* panGestureRecognizer = [UIPanGestureRecognizer new]; - self.panGestureRecognizer = panGestureRecognizer; - panGestureRecognizer.delegate = self; - [self addGestureRecognizer: panGestureRecognizer]; } return self; } @@ -470,28 +464,6 @@ - (NSString *)determineScrollDirection:(UIScrollView *)scrollView { return scrollDirection; } -- (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) - if (gestureRecognizer == self.panGestureRecognizer && [NSStringFromClass([otherGestureRecognizer class]) isEqual: @"RNSPanGestureRecognizer"]) { - UIPanGestureRecognizer* panGestureRecognizer = (UIPanGestureRecognizer*) gestureRecognizer; - CGPoint velocity = [panGestureRecognizer velocityInView:self]; - BOOL isLTR = [self isLtrLayout]; - BOOL isBackGesture = (isLTR && velocity.x > 0) || (!isLTR && velocity.x < 0); - - if (self.currentIndex == 0 && isBackGesture) { - self.scrollView.panGestureRecognizer.enabled = false; - } else { - self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled; - } - - return YES; - } - - self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled; - return NO; -} - - (BOOL)isLtrLayout { return [_layoutDirection isEqualToString:@"ltr"]; }