详细讲解WaterRefreshLoadMoreView的使用

简介:

详细讲解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是本人自己写的,看官可以自行替换成其他的东西来实现,本人只是为了模拟加载的情形

目录
相关文章
|
存储 移动开发 JavaScript
H5加载Android本地路径图片
H5加载Android本地路径图片
1372 0
|
9月前
|
存储 SQL 监控
java多线程之线程池
java多线程之线程池
201 1
|
9月前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第26天】在Java开发中,高效地处理并发编程问题对于提升应用的性能和稳定性至关重要。本文将深入探讨Java中的线程安全性问题,分析并发编程的挑战,并介绍一系列实用的解决方案和性能优化技巧。我们将通过具体示例,包括锁机制、线程池以及原子类等高级特性,来指导开发者如何在实践中实现高效的并发控制。
|
消息中间件
rabbitmq 延时交换机x-delayed-exchange
利用官方提供的延时插件实现消息延时功能
629 0
|
Web App开发 搜索推荐 数据安全/隐私保护
极简极速!小米团队力作,难得的良心产品!
电脑端浏览器层出不穷,好用的也有很多选择,Chrome、Firefox、Edge等。
极简极速!小米团队力作,难得的良心产品!
|
SQL 数据采集 机器学习/深度学习
阿里系数据技术专家4000字数据智能平台搭建实战笔记
数据智能研发平台,是基于数据基础能力,打造专业、高效、安全的一站式智能研发平台。支持实时与离线数据集成、开发运维、工作流调度、数据质量、数据安全的全链路数据管理,满足数据治理、数据血缘、数据质量、安全管控,标签应用的需求。
 阿里系数据技术专家4000字数据智能平台搭建实战笔记
|
Java Windows Maven
|
关系型数据库 MySQL 数据库
mysql安装过程
  1.到官网下载Mysql,目前最新版都是5.0以上版本,下载之后直接解压即可     2.初始化文件:mysqld  --initialize-insecure(在5.7版本以上没有一个默认的data目录,所以需要执行此命令初始化一下,否则启动服务报错:服务报告没有任何错误)   3.
1013 0