只要用到tableView的地方,大多会用到上拉刷新/下拉加载。 这个功能点说难不难,说简单也得花些时间。 好在早已有开源精神的热心人写好了一个插件,供iOS开发者调用。 用起来还是很简单的。这就是 EGOTableViewPullRefresh
对使用者来说,只需要知道 上拉刷新的事件、 下拉加载的事件。 具体使用如下: 将EGOTableViewPullRefresh 加入到工程中。
2. 在storyboard中,将你要操作的tableView 的custom class 设为: PullTableView 。
3. 通过 ctrl+drag,创建 UITableView的IBOutlet:
@property (weak, nonatomic) IBOutlet PullTableView *pullTableView; // 特别注意, 所创建的对象类型为: PullTableView
4. 遵循所需要的协议:
@interface ViewController : UIViewController <UITableViewDataSource,UITableViewDelegate,PullTableViewDelegate>
@interface ViewController : UIViewController <UITableViewDataSource,UITableViewDelegate,PullTableViewDelegate>
仅仅遵循delegate 还不够,还得 做一个重要的操作: pullDelegate的 关联,如图:
5. 实现delegate的方法, 获取到 refresh 和 loadMore 的事件,如下:
#pragma mark - PullTableViewDelegate
- (void)pullTableViewDidTriggerRefresh:(PullTableView *)pullTableView {
[self performSelector:@selector(refreshTable) withObject:nil afterDelay:3.0f];
}
- (void)pullTableViewDidTriggerLoadMore:(PullTableView *)pullTableView{
[self performSelector:@selector(loadMoreDataToTable) withObject:nil afterDelay:3.0f];
}
6. 编译 去 Release 化
EGOTableViewPullRefresh 属于 非 ARC 框架, 我还没找到可用的ARC版本,只好在 Target -> build phases 中,将 所加载的文件,设为: -fno-objc-arc
当然,你也可以通过代码 删减 那些 release,这种工作,枯燥无味,还有可能一不小心删减出错。