zoukankan      html  css  js  c++  java
  • IOS开发之下拉刷新和上拉加载更多

    IOS开发之下拉刷新和上拉加载更多

    1.简介

      常用的下拉刷新和上拉加载更多的实现方式

        (1)UIRefreshControl

        (2)EGOTableViewRefresh

        (3)AH3DPullRefresh

        (4)MJRefresh

        (5)自己实现

    2.AH3DPullRefresh的使用

      2.1 配置

        1.导入AH3DPullRefresh工程文件

        2.在工程TARGETS-> Build Phases-> Compile Sources->

          搜索UIScrollView+AH3DPullRefresh并在后面加上  “-fno-objc-arc”

        3.添加头UIScrollView+AH3DPullRefresh的头文件

    #import "UIScrollView+AH3DPullRefresh.h"

      2.2 使用(基于满座网的实例)

        1.添加下拉刷新和上拉加载更多的方法

    #pragma mark 下拉刷新和上拉加载更多
    -(void)addPullRefreshAndPullLoadMore{
        [_tableView setPullToRefreshHandler:^{
            //从第一行数据开始下载
            _offset = 1;
            [self startDownloadData];
        }];
        
        [_tableView setPullToLoadMoreHandler:^{
            _offset += _pageSize;
            [self startDownloadData];
        }];
    }

        2. 下载数据:如果是下拉刷新先清空所有的数据

    //如果_offset = 1,重新刷新
        if (_offset == 1) {
           
            [_dataArray removeAllObjects];
        }

           加载完成新的数据之后结束刷新并刷新表格

     //结束刷新
        [_tableView refreshFinished];
        [_tableView loadMoreFinished];
        [_tableView reloadData];

        3.完整的代码:

    -(void)startDownloadData
    {
        NSString *urlStr = [NSString stringWithFormat:MAIN_SHOP_URL,_city,_categotry,_offset,_pageSize];
        _reauest = [[HttpRequest alloc]init];
        [_reauest requestWithUrl:urlStr targe:self action:@selector(dealDownloadFinish:)];
    }
    
    -(void)dealDownloadFinish:(HttpRequest *)request{
        NSString *str = [[NSString alloc]initWithData:request.data encoding:NSUTF8StringEncoding];
        NSLog(@"%@",str);
        
        GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:request.data  options:0 error:nil];
        NSArray *list = [doc nodesForXPath:@"//promotion" error:nil];
        
        //如果_offset = 1,重新刷新
        if (_offset == 1) {
           
            [_dataArray removeAllObjects];
        }
        
        for (GDataXMLElement *promotion in list) {
            PromotionModel *model = [[PromotionModel alloc]init];
            model.myid = [[[promotion elementsForName:@"id"] firstObject] stringValue];
            model.name = [[[promotion elementsForName:@"name"] firstObject] stringValue];
            [_dataArray addObject:model];
    
        }
        
        //结束刷新
        [_tableView refreshFinished];
        [_tableView loadMoreFinished];
        [_tableView reloadData];
        
    }

        

    下载 

  • 相关阅读:
    《应用Yii1.1和PHP5进行敏捷Web开发》学习笔记(转)
    YII 小模块功能
    Netbeans代码配色主题大搜集
    opensuse 启动巨慢 解决方法 90s多
    opensuse 安装 网易云音乐 rpm netease music
    linux qq rpm deb opensuse
    openSUSE 安装 alien
    第一行代码 Android 第2版
    Android Studio AVD 虚拟机 联网 失败
    docker error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuratio
  • 原文地址:https://www.cnblogs.com/BadMao/p/4393778.html
Copyright © 2011-2022 走看看