Skip to content


Fix spinner is not shown on beginRefreshingProgrammatically on IOS (#…
Browse files Browse the repository at this point in the history

It closes #24855
In the endRefreshProgrammatically of RCTRefreshControl.m there is calculation for content offset when spinner is shown CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - self.frame.size.height};
However self.frame.size.height is always 0 and therefore spinner is not visible
This change should fix that

Since the owner of the following PR is quite busy and won't be able to resolve the merge conflict anytime soon, I created this PR here to get the fix merged soon.
Ref: #27236
Thanks to [IgnorancePulls](

## Changelog

[iOS] [Fixed] - Fix spinner visibility on beginRefreshingProgrammatically
Pull Request resolved: #27397

Test Plan:
IOS tests passed
Check whether this issue is reproduced or not for the repro which is described inside the issue.

Reviewed By: sammy-SC

Differential Revision: D18801307

Pulled By: hramos

fbshipit-source-id: d12af236778441a136dbe6b03dfd3495a465ae0f
  • Loading branch information
nnabinh authored and facebook-github-bot committed Dec 6, 2019
1 parent 898b1db commit e341489
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions React/Views/RefreshControl/RCTRefreshControl.m
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ - (void)beginRefreshingProgrammatically
_refreshingProgrammatically = YES;
// When using begin refreshing we need to adjust the ScrollView content offset manually.
UIScrollView *scrollView = (UIScrollView *)self.superview;
// Fix for bug #24855
[self sizeToFit];
CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - self.frame.size.height};

// `beginRefreshing` must be called after the animation is done. This is why it is impossible
Expand Down

0 comments on commit e341489

Please sign in to comment.