单例实现下拉加载大坑

#pragma mark - 刷新

//下拉刷新

- (void)setUpRefresh

{

//用MJReference框架

//下拉刷新

_tableView.header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(getHotSchoolData)];

//开始刷新

[_tableView.header beginRefreshing];

//上拉刷新

MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(getMoreData)];

//显示多少百分比就开始刷新

self.tableView.footer = footer;

}

#pragma mark - 获取数据

- (void)getHotSchoolData

{

__weak __typeof(self) weakSelf = self;

[[HotModel singleton] getHotSchoolList:^{

weakSelf.dataArray= [[HotModel singleton] hotSchoolArr];

[weakSelf.tableView reloadData];

[weakSelf.tableView.header endRefreshing];

} failedBlock:^(NSString *state, NSString *errmsg) {

[weakSelf.tableView.header endRefreshing];

}];

}

- (void)getMoreData

{

__weak __typeof(self) weakSelf = self;

if (self.dataArray.count != 0) {

ZSLog(@"1=====%ld",self.dataArray.count);

[[HotModel singleton] getMoreHotSchool:^{

ZSLog(@"2=====%ld",self.dataArray.count);

NSArray *newData = [[HotModel singleton] hotSchoolArr];

[weakSelf.dataArray addObjectsFromArray:newData];

ZSLog(@"3=====%ld",weakSelf.dataArray.count);

[weakSelf.tableView reloadData];

[weakSelf.tableView.footer endRefreshing];

} failedBlock:^(NSString *state, NSString *errmsg) {

[weakSelf.tableView.footer endRefreshing];

}];

}

}

问题:每次加载10条数据,上拉时1处打印总是20;2处总是打印10;3处打印20

解决:单利的内存  是全局唯一的

- (void)getHotSchoolData

{

__weak __typeof(self) weakSelf = self;

[[HotModel singleton] getHotSchoolList:^{

[weakSelf.dataArray addObjectsFromArray:[[HotModel singleton] hotSchoolArr]];

[weakSelf.tableView reloadData];

[weakSelf.tableView.header endRefreshing];

} failedBlock:^(NSString *state, NSString *errmsg) {

[weakSelf.tableView.header endRefreshing];

}];

}

时间: 2024-11-05 11:53:57

单例实现下拉加载大坑的相关文章

ASP.NET仿新浪微博下拉加载更多数据瀑布流效果

闲来无事,琢磨着写点东西.貌似页面下拉加载数据,瀑布流的效果很火,各个网站都能见到各式各样的展示效果,原理大同小异.于是乎,决定自己写一写这个效果,希望能给比我还菜的菜鸟们一点参考价值. 在开始之前,先把实现的基本原理说一下.当夜幕下拉到底部的时候,js可以判断滚动条的位置,到达底部触发js方法,执行jquery的ajax方法,向后台一般处理程序夜幕ashx文件请求数据源,得到json格式的数据源.然后,遍历json数据源,拼接一个li标签,再填充到页面上去. 首先,我们来做个简单的html页面

H5页面下拉加载更多(实用版)

近期在做一个H5网站,需要下拉加载更多产品列表的功能.百度搜索了好久,什么说法都有,什么插件都有.   醉了.基本上每一个能直接拿来用的. 最后发现: 1.dropload.js 插件  还可以,但是有个问题,只能单页使用比较方便.带有tab标签的不推荐使用. 2.自己百度了半天总结出来的一套: <script> document.addEventListener('scroll', watchScroll); var itemIndex = 0; var classid = 10; var

iscroll.js实现上拉刷新,下拉加载更多,应用技巧项目实战

上拉刷新,下拉加载更多...仿原生的效果----iscroll是一款做滚动效果的插件,具体介绍我就不废话,看官方文档,我只写下我项目开发的一些用到的用法: (如果不好使,调试你的css,想必是个很蛋疼的问题,给点提示 :#wrapper,以及#scroller-content要注意) html如下: <div class="viewport"> <div id="wrapper" class="wrapper"> <

下拉加载更多DEMO(js实现)

项目的一个前端页面展示已购买商品时,要求能下拉加载更多.花了点时间研究这个功能,以前没做过. 首先需要给div加scroll事件,监听滚动条滚动动作.那何时触发加载动作呢?当滚动条滚到底的时候.如何判断滚动条滚到底呢? 当滚动条的高度加上滚动条到div顶部的高度等于div的可滚动高度时,说明滚动条到底部了.公式如下. [javascript] view plain copy this.scrollHeight <= $(this).scrollTop() + $(this).height() 给

安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多

<!-- Description:上拉刷新,下拉加载更多是现在最流行的手势操作,但是对于初学者来说,在实现上是有一定难度的, 网上很多教程讲的都过于复杂,对于初学者无法起到引导作用,特此写本文,帮助安卓新手入门理解此, 还有最为重要的一点:本文只帮助你理解,并不是想你成为代码搬运工!别被那么多代码吓到了, 其中很多都是注释,仔细看注释对你理解有很大的帮助 Author:Booker L Date:2014-05-16 --> 一,事先准备: 实现该功能,最基本的需要两个东西,一个是OnTouc

使用谷歌提供的SwipeRefreshLayout下拉控件,并自定义实现下拉加载的功能

package com.loaderman.swiperefreshdemo; import android.os.Bundle; import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.View;

Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 -- CardView.RecyclerView也是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存. RecyclerView的优点就是,他可以通过设置LayoutMan

关于MJRefresh的下拉加载数据bug

当没有更多数据的时候显示NoMoreData 我的理解是先结束刷新再显示没有更多 今天之前一直没发现有问题 贴之前的代码 [self.collectionView reloadData]; [self.collectionView.mj_header endRefreshing]; // 结束刷新 [self.collectionView.mj_footer endRefreshing]; NSArray *arr = data[@"Json"]; if (arr.count == 0

JQuery实现无刷新下拉加载图片

      最近做的一个项目需要做页面无刷新下拉加载图片,调研了一番,大多都采用检测滚动条达到底部,然后利用ajax加载下一页数据对页面数据进行添加,根据这一逻辑,自己写了一个,具体代码如下: JQuery写下拉触发ajax事件 $(window).scroll(function () { if($(window).scrollTop()==($(document).height()-$(window).height()))//判断右边滑动条是否滑到最下 { $.ajax({ url:"&quo