IOS怎麼實現一個UITableView的下拉重新整理

來源:互聯網
上載者:User

標籤:cto   read   width   selector   sign   ems   ack   ret   bool   

採用的EGORefreshTableHeaderView來實現:

在Controller上實現EGORefreshTableHeaderDelegate的delegate

@property(nonatomic)UITableView* tableView;@property(nonatomic)NSMutableArray* data;@property(nonatomic)EGORefreshTableHeaderView* refreshTableVIew;@property(nonatomic,assign)BOOL reloading;
先初始化:
- (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] initWithFrame: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;    }    }


下拉的時候會運行

- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{    _reloading = YES;    //開始重新整理後運行後台線程,在此之前能夠開啟HUD或其它對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];}

這種方法表示正在重新整理中

- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{    return _reloading;}



這種方法在顯示時間在TableView的重新整理塊上 :

//返回重新整理時間的回調方法-(NSDate *)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView *)view{    return [NSDate date];}

然後必須加上以下兩個方法:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    [_refreshTableVIew egoRefreshScrollViewDidScroll:scrollView];}-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{    [_refreshTableVIew egoRefreshScrollViewDidEndDragging:scrollView];}


代碼能夠在http://download.csdn.net/detail/baidu_nod/7599913下載

IOS怎麼實現一個UITableView的下拉重新整理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.