55 lines
2.5 KiB
Diff
55 lines
2.5 KiB
Diff
diff --git a/node_modules/react-native-pager-view/ios/ReactNativePageView.m b/node_modules/react-native-pager-view/ios/ReactNativePageView.m
|
|
index ab0fc7f..1ace752 100644
|
|
--- a/node_modules/react-native-pager-view/ios/ReactNativePageView.m
|
|
+++ b/node_modules/react-native-pager-view/ios/ReactNativePageView.m
|
|
@@ -1,6 +1,6 @@
|
|
|
|
#import "ReactNativePageView.h"
|
|
-#import "React/RCTLog.h"
|
|
+#import <React/RCTLog.h>
|
|
#import <React/RCTViewManager.h>
|
|
|
|
#import "UIViewController+CreateExtension.h"
|
|
@@ -9,7 +9,7 @@
|
|
#import "RCTOnPageSelected.h"
|
|
#import <math.h>
|
|
|
|
-@interface ReactNativePageView () <UIPageViewControllerDataSource, UIPageViewControllerDelegate, UIScrollViewDelegate>
|
|
+@interface ReactNativePageView () <UIPageViewControllerDataSource, UIPageViewControllerDelegate, UIScrollViewDelegate, UIGestureRecognizerDelegate>
|
|
|
|
@property(nonatomic, strong) UIPageViewController *reactPageViewController;
|
|
@property(nonatomic, strong) RCTEventDispatcher *eventDispatcher;
|
|
@@ -80,6 +80,10 @@ - (void)didMoveToWindow {
|
|
[self setupInitialController];
|
|
}
|
|
|
|
+ UIPanGestureRecognizer* panGestureRecognizer = [UIPanGestureRecognizer new];
|
|
+ panGestureRecognizer.delegate = self;
|
|
+ [self addGestureRecognizer: panGestureRecognizer];
|
|
+
|
|
if (self.reactViewController.navigationController != nil && self.reactViewController.navigationController.interactivePopGestureRecognizer != nil) {
|
|
[self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.reactViewController.navigationController.interactivePopGestureRecognizer];
|
|
}
|
|
@@ -463,4 +467,21 @@ - (NSString *)determineScrollDirection:(UIScrollView *)scrollView {
|
|
- (BOOL)isLtrLayout {
|
|
return [_layoutDirection isEqualToString:@"ltr"];
|
|
}
|
|
+
|
|
+- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
|
|
+ if (!_overdrag && otherGestureRecognizer == self.scrollView.panGestureRecognizer) {
|
|
+ UIPanGestureRecognizer* p = (UIPanGestureRecognizer*) gestureRecognizer;
|
|
+ CGPoint velocity = [p velocityInView:self];
|
|
+ if (self.currentIndex == 0 && velocity.x > 0) {
|
|
+ self.scrollView.panGestureRecognizer.enabled = false;
|
|
+ return NO;
|
|
+ } else {
|
|
+ self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled;
|
|
+ }
|
|
+ } else {
|
|
+ self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled;
|
|
+ }
|
|
+
|
|
+ return YES;
|
|
+}
|
|
@end
|