详细讲解WaterRefreshLoadMoreView的使用
效果图:
加载控件的源码在如下网址中:上拉加载下拉刷新控件WaterRefreshLoadMoreView
使用的源码:
//
// ViewController.m
// NewRefresh
//
// Created by YouXianMing on 14/11/22.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
//
#import "ViewController.h"
#import "ModelCell.h"
#import "WaterRefreshLoadMoreView.h"
@interface ViewController ()<UITableViewDataSource, UITableViewDelegate, WaterLoadMoreDelegate, WaterRefreshDelegate>
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) NSMutableArray *dataArray;
@property (nonatomic, strong) WaterRefreshLoadMoreView *waterMoreView;
@end
@implementation ViewController
- (void)dealloc {
[_waterMoreView deallocWithCloseConnect];
}
- (void)viewDidLoad {
[super viewDidLoad];
// 创建数据源
self.dataArray = [self createDataSource];
// 创建tableView
self.tableView = [self createTableView];
[self.view addSubview:self.tableView];
// 创建刷新控件
self.waterMoreView = [[WaterRefreshLoadMoreView alloc] initWithWithType:WaterRefreshTypeRefreshAndLoadMore];
self.waterMoreView.refreshDelegate = self;
self.waterMoreView.loadMoreDelegate = self;
self.waterMoreView.scrollView = self.tableView;
}
/**
* 创建数据源
*
* @return 数据源
*/
- (NSMutableArray *)createDataSource {
NSMutableArray *dataArray = [NSMutableArray new];
[dataArray addObject:@"YouXianMing 0"];
[dataArray addObject:@"YouXianMing 1"];
[dataArray addObject:@"YouXianMing 2"];
[dataArray addObject:@"YouXianMing 3"];
[dataArray addObject:@"YouXianMing 4"];
[dataArray addObject:@"YouXianMing 5"];
[dataArray addObject:@"YouXianMing 6"];
[dataArray addObject:@"YouXianMing 7"];
[dataArray addObject:@"YouXianMing 9"];
[dataArray addObject:@"YouXianMing 10"];
[dataArray addObject:@"YouXianMing 11"];
[dataArray addObject:@"YouXianMing 12"];
[dataArray addObject:@"YouXianMing 13"];
[dataArray addObject:@"YouXianMing 14"];
[dataArray addObject:@"YouXianMing 15"];
[dataArray addObject:@"YouXianMing 16"];
[dataArray addObject:@"YouXianMing 17"];
[dataArray addObject:@"YouXianMing 18"];
[dataArray addObject:@"YouXianMing 19"];
return dataArray;
}
#pragma mark - tablaView相关
/**
* 创建tableView
*
* @return tableView
*/
- (UITableView *)createTableView {
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, 320, 505)
style:UITableViewStylePlain];
[tableView registerClass:[ModelCell class] forCellReuseIdentifier:@"ModelCell"];
tableView.delegate = self;
tableView.dataSource = self;
tableView.layer.borderWidth = 1.f;
return tableView;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [_dataArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ModelCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ModelCell"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.titleText = _dataArray[indexPath.row];
return cell;
}
// 水滴下拉刷新的代理方法
- (void)slimeRefreshStartRefresh:(WaterRefreshLoadMoreView*)refreshView {
// 两秒钟之后执行刷新成功
[GCDQueue executeInMainQueue:^{
[refreshView endRefreshWithRemindsWords:@"刷新成功!" remindImage:nil];
} afterDelaySecs:2.f];
}
- (void)slimeRefreshEndRefresh:(WaterRefreshLoadMoreView *)refreshView {
}
// 加载更多的代理方法
- (void)loadMoreViewStartLoad:(WaterRefreshLoadMoreView*)refreshView {
[GCDQueue executeInMainQueue:^{
static int count = 0;
[_dataArray addObject:@"YouXianMing - "];
[self.tableView reloadData];
if (count ++ > 1) {
[refreshView banFunctionOfStartLoadMore:YES remind:@"没有更多内容了哦,亲!"];
} else {
[refreshView endLoadingMoreWithRemind:nil];
}
} afterDelaySecs:1.f];
}
- (void)loadMoreViewEndLoad:(WaterRefreshLoadMoreView *)refreshView {
}
@end
以下是需要注意的地方:
GCDQueue是本人自己写的,看官可以自行替换成其他的东西来实现,本人只是为了模拟加载的情形