此次介绍一个下拉刷新的视图函数
//第三方开源库 封装了下拉刷新的视图(把它加到UITableView上,会随着拖拽tableview发生不一样的变化)学习
下拉的刷新是利用了一个第三方的开源库 进去看了一下发现没有看懂,这才以为原来还须要更多的学习,言归正传,下边开始记录学习的过程。spa
首先导入第三方开源库,这个文件我放在了园内的文件里名字叫day14source.zip 在这个第三方开源库里 有它本身规定的图片用来显示下拉的时候的图片变化代理
在实现这个下拉实现的前提是:必须得先建一个可以正常运行的tableView视图,而后再这个视图的基础之上添加代码。code
一、在头文件上添加第三方头文件 并封装协议对象
#import "EGORefreshTableHeaderView.h"blog
EGORefreshTableHeaderDelegate继承
在这个下拉视图的代码中 有下拉tableview 而后让下拉视图产生响应,在这个过程当中会有scrowllview的代理响应(tableView是一个特殊的scrollView)图片
2.声明一个下拉刷新的视图对象ip
EGORefreshTableHeaderView * _refreshView;
在初始化界面的时候建立 EGORefreshTableHeaderView 对象
1 _refreshView=[[EGORefreshTableHeaderView alloc]initWithFrame:CGRectMake(0, -_tableView.frame.size.height, _tableView.frame.size.width, _tableView.frame.size.height)]; 2 //设置刷新视图的代理 3 _refreshView.delegate=self; 4 [_tableView addSubview:_refreshView]; 5 //显示最近一次刷新时间 6 [_refreshView refreshLastUpdatedDate];
先总得说明一下思路 建立一个下拉对象EGPRefreshTableHeaderView 初始化后设置代理,由于它的代理EGORefreshTableHeaderDelegate 是继承scrollview代理的,因此不用再添加scrollview的代理了,EGPRefreshTableHeaderView初始化放在在当前tableview上方,使用asi刷新数据以后 在finished的方法上设置刷新结束的标志 调用(刷新对象)egoRefreshScrollViewDataSourceDidFinishedLoading:(tabview对象) 的函数 而后代理会调用两个函数
//经过此方法 来告诉刷新视图 当前是否正在刷新(当前是否有刷新任务) //返回值为no 证实当前没有刷新任务 能够执行刷新操做 //返回值为yes 证实当前正在进行刷新的任务 不会再执行刷新操做了 - (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView *)view{ return _isRefresh; } //上面的返回值为NO 执行此方法 refreshView开始执行刷新操做 - (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView *)view{ //实现刷新数据的代码 if (_isRefresh==NO) { _isRefresh=YES;//改变bool值为yes 标记为正在刷新 } //从新请求第一页的数据 [self loadDataWithPage:1]; } //nsdata 用于操做和获取时间的类 (xxxx年xx月xx日xx时:xx分xx秒) //返回这次刷新操做对应的时间 - (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{ //返回系统的当前的时间 return [NSData data]; }
这样就能够实现下拉列表的实现了