文档章节

Objective-c 下拉刷新,上拉加载实现原理

xtzPioneer
 xtzPioneer
发布于 2016/08/04 09:30
字数 272
阅读 26
收藏 0

#pragma mark+++++++++++++++++++下拉刷新原理+++++++++++++++++++

  • (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { NSLog(@"scrollViewX:%f scrollViewY:%f",scrollView.contentOffset.x ,scrollView.contentOffset.y); if (scrollView.contentOffset.y <-60) { [UIView animateWithDuration:0.2 animations:^{ self.allTableView.contentInset = UIEdgeInsetsMake(40.0f, 0.0f, 0.0f, 0.0f); } completion:^(BOOL finished){

          /**
           *  发起网络请求,请求刷新数据
           */
          [_dataSource requestListAllData:^(NSArray *array)
           {
               _allDataSource = [[NSMutableArray alloc]initWithArray:array];
               //刷新
               [_allTableView reloadData];
               self.pag=2;
               [UIView animateWithDuration:0.2 animations:^{
                   self.allTableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f);
               }];
           }];
    
    
      }];
    

    } } #pragma mark+++++++++++++++++++上拉加载原理+++++++++++++++++++

  • (void)scrollViewDidEndDragging:(UIScrollView )scrollView willDecelerate:(BOOL)decelerate { NSLog(@"%f",scrollView.contentOffset.y); NSLog(@"%f",scrollView.frame.size.height); NSLog(@"%f",scrollView.contentSize.height); /*

    • 关键-->

    • scrollView一开始并不存在偏移量,但是会设定contentSize的大小,所以contentSize.height永远都会比contentOffset.y高一个手机屏幕的

    • 高度;上拉加载的效果就是每次滑动到底部时,再往上拉的时候请求更多,那个时候产生的偏移量,就能让contentOffset.y + 手机屏幕尺寸高大于这

    • 个滚动视图的contentSize.height */ if (scrollView.contentOffset.y + scrollView.frame.size.height >= scrollView.contentSize.height) { NSLog(@"%d %s",LINE,FUNCTION); [UIView commitAnimations];

      [UIView animateWithDuration:1.0 animations:^ { //frame发生的偏移量,距离底部往上提高60(可自行设定) self.allTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); } completion:^(BOOL finished) { __weak typeof(self) weakSelf = self; [_dataSource addListAllDataWithPag:weakSelf.pag Data:^(NSArray *array) { [weakSelf.allDataSource addObjectsFromArray:array]; [weakSelf.allTableView reloadData]; weakSelf.pag+=1;

      }];
      

      }];

    } }

© 著作权归作者所有

上一篇: IOS 遍历控件
xtzPioneer
粉丝 2
博文 92
码字总数 48420
作品 0
杭州
程序员
私信 提问
基于MVVM 的IOS开发框架--EasyIOS

Swift版本最新发布: https://github.com/EasyIOS/EasyIOS-Swift 全新基于MVVM(Model-View-ViewModel)编程模式架构,开启EasyIOS开发函数式编程新篇章。 EasyIOS 2.0类似AngularJs,最为核心...

墨水
2014/07/18
16.6K
5
Jaynm/PullToRefreshListView

PullToRefreshScrollViewDemo Android使用PullToRefresh完成ListView下拉刷新和左滑删除 一、本文主要内容: 使用PullToRefresh完成ListView下拉、上拉刷新; 扩展PullToRefresh完美的实现L...

Jaynm
2016/11/03
0
0
APP7天快速开发教程4:APP开发图片缓存原理

第四天:掌握使用JS模版来实现列表数据,推荐使用doT模版;了解下拉刷新和上拉加载的实现原理及相关API的使用,实现下拉刷新、上拉加载更多功能;了解APICloud图片缓存原理及相关API的使用,...

达斯雷马
2017/02/23
225
0
微信小程序之上拉加载与下拉刷新

在移动端,随着手指不断向上滑动,当内容将要到达屏幕底部的时候,页面会随之不断的加载后续内容,直到没有新内容为止(我们是有底线的-o-),我们称之为上拉加载,从技术角度来说,也可以称...

一斤代码
2018/03/03
0
0
Android 下拉刷新、上拉加载库--BGARefreshLayout

BGARefreshLayout包含多种下拉刷新效果、上拉加载更多、可配置自定义头部广告位 。 效果图: 目前已经实现了四种下拉刷新效果: 新浪微博下拉刷新风格(可设置各种状态是的文本,可设置整个刷...

bingoogolapple
2016/06/22
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

将博客搬至CSDN

https://blog.csdn.net/qq_38157006

Marhal
15分钟前
1
0
unicode Java中求字符串长度length()和codePointCount()的区别

在计算字符串长度时,Java的两种方法length()和codePointCount()一度让我困惑,运行书上例子得到的长度值是相等的,那为什么要设定两个方法呢? 对于普通字符串,这两种方法得到的值是一样的...

泉天下
15分钟前
2
0
uin-app 一、学习理由

选择uni-app 理由 别人的理由 1. 5+ 有HTML5+和Native.js技术,HTML5+包含常用的跨平台的几百个API,能满足常规开发需求,而Native.js把40w原生api映 射成js对象,这样js可以直接调原生。HTM...

轻轻的往前走
17分钟前
1
0
方括号及其在命令行中的不同用法介绍

通配 方括号最简单的用法就是通配。你可能在知道“ Globbing”这个概念之前就已经通过通配来匹配内容了,列出具有相同特征的多个文件就是一个很常见的场景,例如列出所有 JPEG 文件: ls *.j...

Linux就该这么学
23分钟前
1
0
vecty 基础

gopherjs 是把 go 编译为 js 的工具。 vecty 是基于 gopherjs 的一种类似 React 的开发框架。 安装 gopherjs 和 vecty go get -u github.com/gopherjs/gopherjsgo get -u github.com/gopher......

electricface
24分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部