diff --git a/React/Views/RCTWKWebView.h b/React/Views/RCTWKWebView.h index ca1d3ae1936..c42023d0946 100644 --- a/React/Views/RCTWKWebView.h +++ b/React/Views/RCTWKWebView.h @@ -21,6 +21,7 @@ @property (nonatomic, assign) BOOL messagingEnabled; @property (nonatomic, copy) NSString *injectedJavaScript; @property (nonatomic, assign) BOOL scrollEnabled; +@property (nonatomic, assign) CGFloat decelerationRate; - (void)postMessage:(NSString *)message; diff --git a/React/Views/RCTWKWebView.m b/React/Views/RCTWKWebView.m index 63bab215932..601651657d9 100644 --- a/React/Views/RCTWKWebView.m +++ b/React/Views/RCTWKWebView.m @@ -5,7 +5,7 @@ static NSString *const MessageHanderName = @"ReactNative"; -@interface RCTWKWebView () +@interface RCTWKWebView () @property (nonatomic, copy) RCTDirectEventBlock onLoadingStart; @property (nonatomic, copy) RCTDirectEventBlock onLoadingFinish; @property (nonatomic, copy) RCTDirectEventBlock onLoadingError; @@ -31,6 +31,7 @@ static NSString *const MessageHanderName = @"ReactNative"; [wkWebViewConfig.userContentController addScriptMessageHandler: self name: MessageHanderName]; _webView = [[WKWebView alloc] initWithFrame:self.bounds configuration: wkWebViewConfig]; + _webView.scrollView.delegate = self; _webView.UIDelegate = self; _webView.navigationDelegate = self; [self addSubview:_webView]; @@ -85,6 +86,12 @@ static NSString *const MessageHanderName = @"ReactNative"; } } + +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView +{ + scrollView.decelerationRate = _decelerationRate; +} + - (void)setScrollEnabled:(BOOL)scrollEnabled { _webView.scrollView.scrollEnabled = scrollEnabled; diff --git a/React/Views/RCTWKWebViewManager.m b/React/Views/RCTWKWebViewManager.m index 5b71de0c7ac..8c234b11536 100644 --- a/React/Views/RCTWKWebViewManager.m +++ b/React/Views/RCTWKWebViewManager.m @@ -41,4 +41,8 @@ RCT_CUSTOM_VIEW_PROPERTY(scrollEnabled, BOOL, RCTWKWebView) { view.scrollEnabled = json == nil ? true : [RCTConvert BOOL: json]; } +RCT_CUSTOM_VIEW_PROPERTY(decelerationRate, CGFloat, RCTWKWebView) { + view.decelerationRate = json == nil ? UIScrollViewDecelerationRateNormal : [RCTConvert CGFloat: json]; +} + @end