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

    iOS开发之下拉刷新和上拉加载

    1.简介

      常用的下拉刷新的实现方式

      (1)UIRefreshControl

      (2)EGOTableViewRefresh

      (3)AH3DPullRefresh  (本文实例所用)

      (4)MJRefresh

      (5)自己实现

    2.效果图

    下拉刷新

    上拉加载

    3. 代码实现过程

    3.1 首先添加AH3DPullRefresh到工程中, 设置UIScrollView+AH3DPullRefresh.m文件为非ARC(加入 -fno-objc-arc)

    在需要添加下拉刷新的.m文件中添加头文件

    #import "UIScrollView+AH3DPullRefresh.h"

     

    3.2为偏移值等于1 (_offset = 1) 以及偏移值等于10+1 (_offset += _pageSize) 添加加载方法

        [_tableView setPullToRefreshHandler:^{
            //从第一行数据开始加载
            _offset = 1;
            [self startDownloadData];
        }];
        
        [_tableView setPullToLoadMoreHandler:^{
            _offset += _pageSize;
            [self startDownloadData];
        }];

    3.3  

    (1)如果偏移值为1,数据源清空数据;

    (2)将提取下载库的数据并且存入数组list ,在数组list内遍历并赋值

    (3)最后结束刷新,并刷新tableview的数据

    //如果偏移值为1,刷新数据    
        if(_offset == 1)
        {
            NSLog(@"下拉刷新!");
            [_dataArray removeAllObjects];
        }
        
     NSArray *list = [doc nodesForXPath:@"//promotion" error:nil];
    
    //遍历数据,并赋值
        for(GDataXMLElement *promotion in list)
        {
            PromotionModel *model = [[PromotionModel alloc] init];
            model.id = [[[promotion elementsForName:@"id"] firstObject] stringValue];
            model.name = [[[promotion elementsForName:@"name"] firstObject] stringValue];
            
            [_dataArray addObject:model];
        }
    
        //结束刷新
        [_tableView refreshFinished];
        
    
        [_tableView loadMoreFinished];
        
        [_tableView reloadData];
  • 相关阅读:
    linux命令之free篇
    linux操作之逻辑分区与交换分区篇
    linux之软连接,硬连接篇
    Linux之磁盘分区篇
    Linux命令之vi篇
    JVM总结-垃圾回收算法
    JVM总结-字节码
    JVM总结-java对象的内存布局
    JVM-synchronized怎么实现的?
    JVM总结-invokedynamic
  • 原文地址:https://www.cnblogs.com/SuperHanks/p/4390600.html
Copyright © 2011-2022 走看看