实现下拉刷新效果 仅适用于IOS 6.0

iOS6.0中的一个新控件UIRefreshControl

照例上图

实现下拉刷新效果 仅适用于IOS 6.0

实现下拉刷新效果 仅适用于IOS 6.0

实现下拉刷新效果 仅适用于IOS 6.0

 

 

今天逛论坛看到别人发的帖子,说此控件只能用于UITableViewController,如果用在其他ViewController中,运行时会得到如下错误提示:(即UIRefreshControl只能被UITableViewController管理)

其实他忽略了一点,在ViewController上可以调用

- (void)addSubview:(UIView *)view;

来进行添加UITableViewController,再添加UITableView,这样UIRefreshControl依旧由UITableViewController管理,但在其他ViewController中依旧可以使用。为了使用原生的下拉效果,你说我们容易吗!

例子结构:

VC_view 继承于 UIViewController

TV_table 继承于 UITableViewController

VC_view 重点代码

#pragma mark -

#pragma mark Custom Methods

/******************************************************************************

 函数名称 : - (void)refreshData

 函数描述 : 刷新视图数据

 输入参数 : N/A

 输出参数 : N/A

 返回参数 : N/A

 备注信息 :

 ******************************************************************************/

- (void)refreshData{

    self.pTV_table = [[TV_table alloc] initWithNibName:@"TV_table" bundle:nil];

    self.pTV_table.view.frame = CGRectMake(0, 0, 320, 416);

    [_pV_main addSubview:_pTV_table.tableView];

}

在UIViewController 添加别的Controller Or View 必须声明全局变量

//引入UITableViewController,必须在需引入的控制器中声明其全局变量,不能声明为局部变量。

@property (strong, nonatomic) TV_table *pTV_table;

这是ARC的特点

TV_table 重点代码

/******************************************************************************

 函数名称 : - (void)configRefreshControl

 函数描述 : 配置RefreshControl

 输入参数 : N/A

 输出参数 : N/A

 返回参数 : N/A

 备注信息 :

 ******************************************************************************/

- (void)configRefreshControl{

    UIRefreshControl *refresh = [[UIRefreshControl alloc] init];

    refresh.tintColor = [UIColor lightGrayColor];

    refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"];

    [refresh addTarget:self action:@selector(refreshView)

      forControlEvents:UIControlEventValueChanged];

    self.refreshControl = refresh;

}

 

/******************************************************************************

 函数名称 : - (void)handleData

 函数描述 : 处理数据

 输入参数 : N/A

 输出参数 : N/A

 返回参数 : N/A

 备注信息 :

 ******************************************************************************/

-(void)handleData

{

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];

    NSString *lastUpdated = [NSString stringWithFormat:@"最后更新于 %@",

                             [formatter stringFromDate:[NSDate date]]];

    self.refreshControl.attributedTitle = [[NSAttributedString alloc]

                                           initWithString:lastUpdated];

    self.count++;

    [_pMuArr_dataSource insertObject:[NSString stringWithFormat:@"%d. %@,簡簡單單WZP感觉",

                                      _count,

                                      [formatter stringFromDate:[NSDate date]]] atIndex:0];

    

    [self.refreshControl endRefreshing];

    [self.tableView reloadData];

}

 

/******************************************************************************

 函数名称 : - (void)refreshView

 函数描述 : 刷新视图

 输入参数 : N/A

 输出参数 : N/A

 返回参数 : N/A

 备注信息 :

 ******************************************************************************/

-(void)refreshView

{

    if (self.refreshControl.refreshing) {

        self.refreshControl.attributedTitle = [[NSAttributedString alloc]

                                               initWithString:@"加载数据..."];

        [self performSelector:@selector(handleData) withObject:nil afterDelay:2];

    }

}

 

PRJ_pullDownRefresh6.0.zip 下载地址:http://ishare.iask.sina.com.cn/f/34851880.html

你可能感兴趣的:(下拉刷新)