iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >iOS列表上拉(平滑加载数据)自动加载数据的问题解决
  • 932
分享到

iOS列表上拉(平滑加载数据)自动加载数据的问题解决

ios上拉加载 2022-05-19 00:05:01 932人浏览 独家记忆
摘要

项目需求 我的的列表需要改变,原来的分页加载采用的是MJRefresh框架进行加载更多数据,这需要有一个上拉动作才能触发,而我的产品的意思是当快要滑动到底部时自动加载下一页数据。我

项目需求

我的的列表需要改变,原来的分页加载采用的是MJRefresh框架进行加载更多数据,这需要有一个上拉动作才能触发,而我的产品的意思是当快要滑动到底部时自动加载下一页数据。我自己看了一下,发现很多app都是采用这种模式。

关于MJRefresh

MJRefresh中并没有这样的方法,所以这个效果不一定是MJRefresh实现的,没有实现的小伙伴就不要在MJRefresh中苦苦寻找了。

功能实现

实现方法很简单,需要用到tableView的一个代理方法,就可轻松实现。- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath就是这个方法,自定义显示cell。这个方法不太常用。但是这个方法可在每个cell将要第一次出现的时候触发。然后我们可设置当前页面第几个cell将要出现时,触发请求加载更多数据。

具体代码


- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    NSInteger row = [indexPath row];
    if (row == self.dataArray.count - 2 && self.isfinish) {
//dataArray是存放数据的数组,isfinish是请求是否完成的标识
        self.pageNum++;//第几页
        [self.updataDic addEntriesFromDictionary:@{@"pageSize": @(10), @"pageNum" :@(self.pageNum)}];//请求参数
        [self setupDataModel];//具体请求
    }
}

-(void)serverapi_FinishedSuccessed:(APIRequest *)api result:(APIResult *)sr
{//网络请求成功代理方法
    if (api == self.GoodsAPIRequest) {
        if (self.goodsAPIRequest.netWorkType == 22) {
            self.dataModel = [[GoodsListModelBase alloc]initWithDictionary:sr.dic];//转化model
            [self.dataArray addObjectsFromArray:self.dataModel.data];
            if (self.dataModel.data.count == 0) {
                [self.tableView.mj_footer endRefreshingWithNoMoreData];
                self.isfinish = NO;
            }else {
                [self.tableView reloadData];

                if (@available(iOS 11,*)) {
                    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//iOS11之后reloadData方法会执行- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 方法,将当前所有的cell过一遍,而iOS11之前只是将展示的cell过一遍。故加此方法使其在过第一次的时候不执行加载更多数据

                        self.isfinish = YES;
                    });
                }else {
                    self.isfinish = YES;
                }
             }
 }
}

效果如下

流畅.gif

是不是很流畅。当然还得配上MJRefresh下拉加载,以防网络状态不好的情况下刷不出数据。

关于加载时抖动问题可加上


    self.tableView.estimatedRowHeight = 0;
    self.tableView.estimatedSectionHeaderHeight = 0;
    self.tableView.estimatedSectionFooterHeight = 0;

关闭预估算高度.

总结

到此这篇关于iOS列表上拉(平滑加载数据)自动加载数据问题解决的文章就介绍到这了,更多相关iOS列表上拉自动加载数据内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: iOS列表上拉(平滑加载数据)自动加载数据的问题解决

本文链接: https://www.lsjlt.com/news/30529.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue3+vant+ts上滑加载解决上滑调用多次数据的问题(推荐)
    之前用vue2的时候,写过vue2的用法,文末扩展知识点击查看,用得挺好的,也没啥问题,照葫芦画瓢的做出来了,但是有问题,下滑之后调用多次数据,按理说 组件通过 loadi...
    99+
    2022-12-28
    Vue3 vant ts 上滑加载 Vue3 vant ts 加载 vue上滑调用多次数据
  • 如何解决ionic和angular上拉加载的问题
    这篇文章主要介绍了如何解决ionic和angular上拉加载的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说到ionic上拉加载就跟p...
    99+
    2024-04-02
  • 如何解决bootstrap-select动态加载数据不显示的问题
    小编给大家分享一下如何解决bootstrap-select动态加载数据不显示的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!...
    99+
    2024-04-02
  • js/jquery如何控制页面动态加载数据和滑动滚动条自动加载事件
    这篇文章主要介绍了js/jquery如何控制页面动态加载数据和滑动滚动条自动加载事件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。页面滚动动...
    99+
    2024-04-02
  • Vue实现下拉滚动加载数据的示例
    目录第一步:安装第二步:引用第三步:使用Web项目经常会用到下拉滚动加载数据的功能,今天就来种草 Vue-infinite-loading 这个插件,讲解一下使用方法! 第一步:安装...
    99+
    2024-04-02
  • 关于echarts 清空上一次加载的数据问题
    目录echarts 清空上一次加载的数据目标效果及数据格式后台数据格式Json中List类型,并遍历List中的对象最终效果Echarts清空图表:There is a chart ...
    99+
    2022-11-13
    echarts清空数据 echarts清空上一次数据 清空上一次加载数据
  • 如何解决el-select数据过多懒加载问题
    这篇文章主要介绍如何解决el-select数据过多懒加载问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!el-select数据过多处理方式在日常项目中el-select组件的使用频...
    99+
    2024-04-02
  • vue如何解决数据加载时,插值表达式闪烁问题
    目录数据加载,插值表达式闪烁问题1.在公共的css样式中加入2.在el挂载的标签上添加解决插值表达式渲染数据闪动先看代码出现的问题解决方法如下图数据加载,插值表达式闪烁问题 1.在公...
    99+
    2024-04-02
  • vue怎么解决数据加载时插值表达式闪烁的问题
    vue怎么解决数据加载时插值表达式闪烁的问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据加载,插值表达式闪烁问题1.在公共的css样式中加入[v-cloak] ...
    99+
    2023-06-28
  • MUI如何解决动态列表页图片懒加载再次加载不成功的bug问题
    这篇文章给大家分享的是有关MUI如何解决动态列表页图片懒加载再次加载不成功的bug问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首次加载时图片可以获取成功,再次加载失败,通过...
    99+
    2024-04-02
  • 如何解决Ajax加载JSon数据中文乱码问题
    这篇文章主要介绍了如何解决Ajax加载JSon数据中文乱码问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、问题描述使用zTree的异步...
    99+
    2024-04-02
  • Android webView加载数据时内存溢出问题及解决
    目录Android webView加载数据时内存溢出Android内存问题 (内存溢出 内存泄漏 内存抖动)总结Android webView加载数据时内存溢出 今天使用webVie...
    99+
    2022-12-08
    Android webView webView加载数据 webView内存溢出
  • vue移动UI框架滑动加载数据的示例分析
    小编给大家分享一下vue移动UI框架滑动加载数据的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果展示先上一个gif图...
    99+
    2024-04-02
  • angular+ionic的app如何实现上拉加载更新数据
    小编给大家分享一下angular+ionic的app如何实现上拉加载更新数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一步...
    99+
    2024-04-02
  • Java的大数据处理,如何解决对象的加载问题?
    随着大数据时代的到来,数据量的爆炸式增长,对于Java开发人员来说,如何高效地处理大数据成为了一个重要的问题。在处理大数据时,Java中的对象加载问题是一个非常关键的问题。在这篇文章中,我们将探讨Java的大数据处理中对象加载的问题,以及...
    99+
    2023-08-16
    大数据 对象 load
  • 微信小程序scroll-view实现上拉加载数据重复的解决方法
    微信小程序的 scroll-view 上拉加载更多的BUG(数据会多加载,甚至有重复数据)。 问题描述:上拉一次,会多次触发触底函数 onReachBottom();换成自定义加载更...
    99+
    2024-04-02
  • Numpy数据加载时常见的问题和解决方法是什么?
    在数据科学领域中,Numpy是一个非常重要的库,它为数据分析和科学计算提供了强大的支持。但是,在使用Numpy进行数据加载时,常会遇到一些问题。这篇文章将介绍Numpy数据加载时常见的问题及其解决方法。 问题一:数据类型不匹配 当我们使用...
    99+
    2023-08-11
    日志 numy load
  • Ajax动态为下拉列表添加数据的示例分析
    这篇文章主要为大家展示了“Ajax动态为下拉列表添加数据的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax动态为下拉列表添加数据的示例分析”这篇文...
    99+
    2024-04-02
  • 阿里云数据库自动加载的设置方法详解
    阿里云数据库自动加载是一种自动化工具,可以帮助数据库管理员快速地将新的数据库记录添加到数据库中。这种工具可以极大地提高数据库管理员的工作效率,减少手动操作的错误,提高数据库的稳定性和可靠性。本文将详细介绍如何设置阿里云数据库自动加载。 一、...
    99+
    2023-12-17
    阿里 详解 数据库
  • 如何使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题
    这篇文章给大家分享的是有关如何使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在项目中用ajax异步获取数据后有时会因为数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作