Using the Egorefreshtableheaderview to achieve:
Implement the Egorefreshtableheaderdelegate delegate on the controller
@property (nonatomic) uitableview* TableView; @property (nonatomic) nsmutablearray* data; @property (nonatomic) egorefreshtableheaderview* Refreshtableview; @property (nonatomic,assign) BOOL reloading;
Initialize First:
-(void) viewdidload{[Super Viewdidload]; Do any additional setup after loading the view. uitoolbar* bar = [[Uitoolbar alloc] Initwithframe:cgrectmake (0, 0, 320, 44)]; uibarbuttonitem* item = [[Uibarbuttonitem alloc] Initwithbarbuttonsystemitem:uibarbuttonsystemitemadd target:self Action: @selector (click)]; [Bar Setitems:[nsarray Arraywithobjects:item, Nil]]; [Self.view Addsubview:bar]; Self.tableview = [[UITableView alloc] Initwithframe:cgrectmake (0, 44,320,460-44)]; [Self.view Addsubview:_tableview]; Self.tableView.delegate = self; Self.tableView.dataSource = self; _data = [[Nsmutablearray alloc] init]; [_data addobject:@ "AA"]; [_data addobject:@ "CC"]; if (_refreshtableview = = nil) {egorefreshtableheaderview* Refreshtableview = [[Egorefreshtableheaderview alloc] In Itwithframe:cgrectmake (0,-self.tableview.bounds.size.height, Self.view.frame.size.width, Self.tableView.bounds.size.height)]; Refreshtableview.delegaTe = self; [_tableview Addsubview:refreshtableview]; _refreshtableview = Refreshtableview; } }
It will be executed when the drop is pulled.
-(void) Egorefreshtableheaderdidtriggerrefresh: (egorefreshtableheaderview*) view{ _reloading = YES; Perform a background thread after the refresh starts, before you can turn on the HUD or other UI blocking [Nsthread detachnewthreadselector: @selector (doinbackground) Totarget: Self Withobject:nil];}
-(void) doinbackground{ NSLog (@ "Do in Background"); [_data addobject:@ "FF"]; [Nsthread Sleepfortimeinterval:3]; [Self Performselectoronmainthread: @selector (loadedtableviewdata) Withobject:nil Waituntildone:yes];}
-(void) loadedtableviewdata{ _reloading = NO; [_refreshtableview EgoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView]; [Self.tableview Reloaddata];}
This method indicates that a refresh is in progress
-(BOOL) egorefreshtableheaderdatasourceisloading: (egorefreshtableheaderview*) view{ return _reloading;}
This method shows the time on the refresh block of the TableView:
callback method to return refresh Time-(NSDate *) egorefreshtableheaderdatasourcelastupdated: (Egorefreshtableheaderview *) view{ return [NSDate Date];}
Then you must add the following two methods:
-(void) Scrollviewdidscroll: (Uiscrollview *) scrollview{ [_refreshtableview egorefreshscrollviewdidscroll: ScrollView];} -(void) scrollviewdidenddragging: (Uiscrollview *) ScrollView willdecelerate: (BOOL) decelerate{ [_ Refreshtableview Egorefreshscrollviewdidenddragging:scrollview];}
Code can be downloaded in http://download.csdn.net/detail/baidu_nod/7599913