上拉加载更多重复调用

今天帮朋友解决了一个bug.由于是朋友新手的缘故,找了一天也没找到.晚上找到我帮忙.先说下问题:(时间关系,代码就懒得帖出来.全部口述.提醒遇到类似问题的新手朋友注意一下.这是个小问题,很不起眼,但是有时候确实不太好找)
在tableView中,上拉加载cell的时候,松手之后,上拉方法又被调用了N次.界面也会在最后发生跳动
于是我看了朋友的代码,从头到尾仔细核对了各种逻辑,没发现什么问题.大体就是cell用xib做的,AutoLayout布局,tableView自适应高度.(关键代码为estimatedRowHeight = xxx 使用预估行高这种方式)请求完成,数据转模型之后添加到数据源.当数据全部添加到数据后,调用tableView.reloadData刷新界面
综合分析半天,最有可能出现问题的地方在于数据源和界面刷新的地方.我自己又按照他的逻辑,自己定义了数据源,添加数据,并且刷新界面,用swift代码写的,所以实现的方式不太一样,最终通过对比,发现问题所在:
我的方式为数组添加数据源,每添加一条,执行一次tableView.reloadData方法,刷新一次数据源;而朋友的则是在循环中把数据源全部添加完成在执行一次’tableView.reloadData’方法,刷新数据. 在代码中来看的话,就是tableView.reloadData方法在循环添加数据的括号里与括号外边的区别.一行只差,可能对于某些新手来说,找到这个bug非常的耗时
最终的猜想应该是这个样子:如果cell是固定大小,不是自适应高度的,用哪种方式都可以.不会出现什么问题.
但是如果是使用自适应高度,预估行高的话,如果把数据全部添加到数组中,然后再更新界面,这时可能由于预估行高的缘故,界面跳动过大,不小心触发上拉刷新.(这里只是个人猜测,如果有高手解惑,小弟表示感谢.)
这时就需要数据源每次发生改变,就更新一次界面.否则可能会发生上述问题.

如果看不懂我的叙述也不要紧,记住每当数据源发生变化,就更新一次界面就不会出现问题.(假使一共请求20条数据,每当在数组中增

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值