在ios6中,蘋果針對UITableView的下拉重新整理提供了自己的api:UIRefreshControl
先看h檔案:
#import <UIKit/UIKit.h>@interface MyTableViewController : UITableViewController{ NSMutableArray *logs; UIRefreshControl *rc;}@end
再看m檔案:
#import "MyTableViewController.h"@interface MyTableViewController ()- (void)refreshTableView;- (void)callBackMethod:(id)obj;@end@implementation MyTableViewController- (id)initWithStyle:(UITableViewStyle)style{ self = [super initWithStyle:style]; if (self) { // Custom initialization } return self;}- (void)viewDidLoad{ [super viewDidLoad]; // Uncomment the following line to preserve selection between presentations. // self.clearsSelectionOnViewWillAppear = NO; // Uncomment the following line to display an Edit button in the navigation bar for this view controller. // self.navigationItem.rightBarButtonItem = self.editButtonItem; self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque; logs = [NSMutableArray array]; NSDate *date = [[NSDate alloc] init]; [logs addObject:date]; rc = [[UIRefreshControl alloc] init]; rc.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉重新整理"]; [rc addTarget:self action:@selector(refreshTableView) forControlEvents:UIControlEventValueChanged]; self.refreshControl = rc; [self.tableView reloadData];}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}#pragma mark - Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{#warning Potentially incomplete method implementation. // Return the number of sections. return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{#warning Incomplete method implementation. // Return the number of rows in the section. return [logs count];}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } // Configure the cell... NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat: @"yyyy-MM-dd HH:mm:ss zzz"]; cell.textLabel.text = [dateFormat stringFromDate: [logs objectAtIndex:[indexPath row]]]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; cell.selectionStyle = UITableViewCellSelectionStyleBlue; return cell;}- (void)refreshTableView{ if (self.refreshControl.refreshing) { self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"載入中…"]; //添加新的類比資料 NSDate *date = [[NSDate alloc] init]; //類比請求完成之後,回調方法callBackMethod [self performSelector:@selector(callBackMethod:) withObject:date afterDelay:3]; }}- (void)callBackMethod:(id)obj{ [self.refreshControl endRefreshing]; self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉重新整理"]; [logs addObject:(NSDate*)obj]; [self.tableView reloadData];}@end