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 run when you drop down.
-(void) Egorefreshtableheaderdidtriggerrefresh: (egorefreshtableheaderview*) view{ _reloading = YES; Start a refresh and run a background thread before you can turn on the HUD or other plug-in UI [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 you are refreshing the
-(BOOL) egorefreshtableheaderdatasourceisloading: (egorefreshtableheaderview*) view{ return _reloading;}
This method is displayed on the refresh block of the TableView:
callback method to return refresh Time-(NSDate *) egorefreshtableheaderdatasourcelastupdated: (Egorefreshtableheaderview *) view{ return [NSDate Date];}
You must then add the following two methods:
-(void) Scrollviewdidscroll: (Uiscrollview *) scrollview{ [_refreshtableview egorefreshscrollviewdidscroll: ScrollView];} -(void) scrollviewdidenddragging: (Uiscrollview *) ScrollView willdecelerate: (BOOL) decelerate{ [_ Refreshtableview Egorefreshscrollviewdidenddragging:scrollview];}
The code can be downloaded in http://download.csdn.net/detail/baidu_nod/7599913
How iOS implements a UITableView drop-down refresh