详细讲解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(, , , )
style:UITableViewStylePlain];
[tableView registerClass:[ModelCell class] forCellReuseIdentifier:@"ModelCell"];
tableView.delegate = self;
tableView.dataSource = self;
tableView.layer.borderWidth = .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:.f];
}
- (void)slimeRefreshEndRefresh:(WaterRefreshLoadMoreView *)refreshView { }
// 加载更多的代理方法
- (void)loadMoreViewStartLoad:(WaterRefreshLoadMoreView*)refreshView {
[GCDQueue executeInMainQueue:^{ static int count = ; [_dataArray addObject:@"YouXianMing - "];
[self.tableView reloadData]; if (count ++ > ) {
[refreshView banFunctionOfStartLoadMore:YES remind:@"没有更多内容了哦,亲!"];
} else {
[refreshView endLoadingMoreWithRemind:nil];
} } afterDelaySecs:.f];
}
- (void)loadMoreViewEndLoad:(WaterRefreshLoadMoreView *)refreshView { } @end

以下是需要注意的地方:

GCDQueue是本人自己写的,看官可以自行替换成其他的东西来实现,本人只是为了模拟加载的情形

最新文章

  1. android MotionEvent 获取长按压时间长
  2. Eclipse里项目名有红叉,但是底下的每一个文件都没有红叉
  3. WPF ToolKit Chart 自定义样式
  4. PHP 错误与异常 笔记与总结(12 )异常
  5. GPOR
  6. 十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)
  7. 从零开始学ios开发(十三):Table Views(下)Grouped and Indexed Sections
  8. VS2010/MFC字体和文本输出:文本输出
  9. 怎样成为PHP 方向的一个合格的架构师(转)
  10. 《JavaScript高级程序设计》读书笔记 ---语句
  11. cookie大小
  12. 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)持续更新
  13. [Python爬虫]使用Selenium操作浏览器订购火车票
  14. Go 实现 自动检索 API 错误码代码行 并 打印成文档,例 markDown 形式等
  15. [Swift]LeetCode1028. 从先序遍历还原二叉树 | Recover a Tree From Preorder Traversal
  16. SOFARPC —— SPI 解析
  17. 配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault=&quot;Deny&quot;),或者是通过包含 overrideMode=&quot;Deny&quot; 或旧有的 allowOverride=&quot;false&quot; 的位置标记明确设置的。
  18. 每天一个linux命令(16):which
  19. Redis安装异常解决办法
  20. pdo,更高的sql安全性

热门文章

  1. springboot-16-springboot中引入xml文件
  2. springboot-12-自定义拦截器的配置interceptor
  3. php的isset()和empty()区别
  4. lua热更框架之XLua
  5. [转]RDL Report in Visual Studio New page per Record
  6. 以中间件,路由,跨进程事件的姿势使用WebSocket
  7. Angular待办事项应用4——模拟web服务
  8. [javaSE] 基本类型(String相关)
  9. Fork/Join
  10. ASP.NET Core 2 学习笔记(十)视图