diff --git a/React/Views/RefreshControl/RCTRefreshControl.m b/React/Views/RefreshControl/RCTRefreshControl.m index d6c6e487ab0658..b09e6530c24841 100644 --- a/React/Views/RefreshControl/RCTRefreshControl.m +++ b/React/Views/RefreshControl/RCTRefreshControl.m @@ -117,6 +117,13 @@ - (void)endRefreshingProgrammatically - (void)_applyProgressViewOffset { + // Setting the UIRefreshControl's frame breaks integration with ContentInset from the superview + // if it is a UIScrollView. This integration happens when setting the UIScrollView's .refreshControl + // property. For this reason, setting the frame manually should be avoided, if not needed. + if (_progressViewOffset == 0.f) { + return; + } + // progressViewOffset must be converted from the ScrollView parent's coordinate space to // the coordinate space of the RefreshControl. This ensures that the control respects any // offset in the view hierarchy, and that progressViewOffset is not inadvertently applied