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

  • 相关阅读:
    apt-get connects to web
    Particle Filter(CC) 放狗
    Get a specific pixel coordinates where your mouse on (cc)
    event
    两张图片的平移实验 (SLAM translate epipolar geometry)
    vs2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败:(cc)
    fx and fy in Calibration
    How do I get add-apt-repository to work through a proxy?
    ROS and PCL install
    Longest palindrome subsequence
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4114707.html
Copyright © 2011-2022 走看看