使用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的 颜色的不同的效果图>