17

Can we implement pull to refresh feature on a custom view controller?. My view controller is not a table view controller and I want to refresh this view on pulling the screen down. How can I implement this feature?

Michael Celey
  • 12,645
  • 6
  • 57
  • 62
Abhinav
  • 37,684
  • 43
  • 191
  • 309

1 Answers1

44

In short, you need to do the following:

  1. Embed your view in a UIScrollView.
  2. Set your controller as the delegate of the scroll view.
  3. Add a "Pull To Refresh" subview to the scroll view such that its frame is off the top of the screen. Something like CGRectMake(0, -30, 320, 30) for a 30pt-tall indicator view.
  4. Implement –scrollViewDidScroll: to update your "Pull to Refresh" view as the user is dragging.
  5. Implement –scrollViewDidEndDragging:willDecelerate: to check scrollView.contentOffset when the dragging ends. If it's beyond your threshold for refreshing, then do the refresh.
BJ Homer
  • 48,806
  • 11
  • 116
  • 129