diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h index 373f2635e36..b476ead4289 100644 --- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h @@ -22,6 +22,11 @@ NS_ASSUME_NONNULL_BEGIN */ @interface RCTScrollViewComponentView : RCTViewComponentView +/* + * Finds and returns the closet RCTScrollViewComponentView component to the given view + */ ++ (RCTScrollViewComponentView *_Nullable)findScrollViewComponentViewForView:(UIView *)view; + /* * Returns an actual UIScrollView that this component uses under the hood. */ diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm index c72eb87122d..aaeda9b7544 100644 --- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm @@ -31,6 +31,14 @@ using namespace facebook::react; CGSize _contentSize; } ++ (RCTScrollViewComponentView *_Nullable)findScrollViewComponentViewForView:(UIView *)view +{ + do { + view = view.superview; + } while (view != nil && ![view isKindOfClass:[RCTScrollViewComponentView class]]); + return (RCTScrollViewComponentView *)view; +} + - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) {