title: `UIRefreshControl endRefreshing` not working
body: <p>I've got a pull-to-refresh feature in my app that is, as far as I can tell, set up the "normal way":</p>
  
  <pre><code>UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
  refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
  
  [refreshControl addTarget:self action:@selector(refreshPage) forControlEvents:UIControlEventValueChanged];
  self.refreshControl = refreshControl;
  </code></pre>
  
  <p>The refreshing part works fine.  After it is done refreshing I call </p>
  
  <pre><code>[self.refreshControl endRefreshing]
  </code></pre>
  
  <p>at which point, it appears to ignore that call and continues to show the pull-to-refresh "gap", only without the spinner:</p>
  
  <p><a href="https://i.stack.imgur.com/qRLI4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/qRLI4.png" alt="pull to refresh sticking"></a></p>
  
  <p>(I do have a breakpoint at that line to verify that <code>endRefreshing</code> <em>IS</em> actually being called)</p>
  
  <p>If I jiggle the page with my thumb (pull it down slightly without pulling it far enough to trigger another pull-to-refresh), it will fix itself and spring back into place.  But why doesn't it spring back when I call <code>[self.refreshControl endRefreshing]</code>?  Is there a way I can programmatically force it to spring back?</p>
  
  <p>I've also tried placing the <code>endRefreshing</code> call in a delay:</p>
  
  <pre><code>[self.refreshControl performSelector:@selector(endRefreshing) withObject:nil afterDelay:0.0]
  </code></pre>
  
  <p>but it still ignores the call.</p>