使用UIRefreshControl刷新表格:
主要代码:
//设置refreshControl的属性,该属性应该是UIReferseControl控件 self.refreshControl = [[UIRefreshControl alloc]init]; //设置颜色 self.refreshControl.tintColor = [UIColor redColor]; //设置该控件的提示标题 self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新"]; //为这个刷新事件设置事件处理方法 [self.refreshControl addTarget:self action:@selector(dateReferse) forControlEvents:UIControlEventValueChanged];
当程序创建UIRefreshControl控件时,可以为该控件德尔刷新事件指定一个事件处理方法。当用户通过该控件刷新时,系统会激发这个事件处理方法,该方法应用到从底层数据库,网络,远程应用等地方的检索数据,并将这些数据添加、显示到表格中。
下方具体用法:
1、首先创建一个工程,然后创建一个继承与UITableViewController的视图控制器,然后把它作为window的根视图,(即显示到页面上)
2、由于继承于UITableViewController,所以无需设置表格代理,因为该控制器系统内部已经设置好了。
3、接下来就是实现部分了。如下:
// // refershTableViewController.m // 11111 // // Created on 16/1/14. // Copyright © 2016年 . All rights reserved. // #import "refershTableViewController.h" @interface refershTableViewController () { NSMutableArray *dataArray; } @end @implementation refershTableViewController - (void)viewDidLoad { [super viewDidLoad]; //初始化NSMutableArray集合 dataArray = [[NSMutableArray alloc]initWithObjects:@"宵夜现在",@"小猴子",@"水果刀",@"苹果",@"香蕉",@"大象",@"老鼠", nil]; //设置refreshControl的属性,该属性应该是UIReferseControl控件 self.refreshControl = [[UIRefreshControl alloc]init]; //设置颜色 self.refreshControl.tintColor = [UIColor redColor]; //设置该控件的提示标题 self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"下拉刷新"]; //为这个刷新事件设置事件处理方法 [self.refreshControl addTarget:self action:@selector(dateReferse) forControlEvents:UIControlEventValueChanged]; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return dataArray.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellID = @"celll"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]; } NSInteger rowNo = indexPath.row; cell.textLabel.text = [dataArray objectAtIndex:rowNo]; return cell; } -(void)dateReferse { //这里延时两分钟是为了表示模拟远程接受数据所耗时的 [self performSelector:@selector(zengjiadata) withObject:nil afterDelay:2]; } -(void)zengjiadata { NSString *str = [NSString stringWithFormat:@"%d",arc4random()%9000]; [dataArray addObject:str]; self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"正在刷新"]; [self.refreshControl endRefreshing]; [self.tableView reloadData]; } @end效果图如下:<下方数字就是通过刷新出来的,左右两张是改变UIRefreshControl的 颜色的不同的效果图>