Skip to content

Instantly share code, notes, and snippets.

@boundn
Created September 27, 2012 19:12
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save boundn/3795851 to your computer and use it in GitHub Desktop.
Save boundn/3795851 to your computer and use it in GitHub Desktop.
Disable the built-in pull-to-refresh view on PFQueryTableViewController and implement your own. This is a starting point and only shows how to get access to the EGORefreshTableHeaderView. Customize away!
#import <Parse/Parse.h>
@interface CustomParseQueryTableViewController : PFQueryTableViewController
{
PF_EGORefreshTableHeaderView *_refreshHeaderView;
BOOL _reloading;
}
- (void)reloadTableViewDataSource;
- (void)doneLoadingTableViewData;
@end
#import "CustomParseQueryTableViewController.h"
@implementation CustomParseQueryTableViewController
- (void)reloadTableViewDataSource{
[self loadObjects];
_reloading = YES;
}
- (void)doneLoadingTableViewData{
_reloading = NO;
[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView];
}
#pragma mark -
#pragma mark UIScrollViewDelegate Methods
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
[_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
[_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
}
#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods
- (void)egoRefreshTableHeaderDidTriggerRefresh:(PF_EGORefreshTableHeaderView*)view{
[self reloadTableViewDataSource];
[self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];
}
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(PF_EGORefreshTableHeaderView*)view{
return _reloading; // should return if data source model is reloading
}
- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(PF_EGORefreshTableHeaderView*)view{
return [NSDate date]; // should return date data source was last changed
}
@end
#import "CustomParseQueryTableViewController.h"
@interface ExploreSignedInController : CustomParseQueryTableViewController
...
@end
...
- (id)initWithStyle:(UITableViewStyle)style {
...
self.pullToRefreshEnabled = NO;
...
}
- (void)viewDidLoad
{
[super viewDidLoad];
if (_refreshHeaderView == nil) {
PF_EGORefreshTableHeaderView *view = [[PF_EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tableView.bounds.size.height, self.view.frame.size.width, self.tableView.bounds.size.height)];
//CUSTOMIZE THE REFRESH VIEW HERE
view.delegate = self;
[self.tableView addSubview:view];
_refreshHeaderView = view;
}
}
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment