diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h index 373f2635e3..b476ead428 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 c72eb87122..aaeda9b754 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]) {