在 app 的开发过程中,使用列表 UITableView
UICollectionView
很常见,而一旦用到列表,那便会涉及到两个功能,下拉刷新和上拉加载更多。可能刚开始实现这两个功能的时候不会有什么问题,但是代码重构或者调整的时候便可能出现问题。
不管下拉刷新还是上拉加载更多,我们在刷新状态下获取到数据之后,都会调用方法使得刷新状态结束,如果忘记了,便不会有下次刷新的触发。为什么呢?
这里以 MJRefresh
为例。首先,一般会有 4 种状态,闲置状态/松开进入刷新状态/正在刷新状态/即将刷新状态。当我们通过滑动进入到刷新状态后,如果没有调用方法使得刷新状态结束,那下次的滑动便一直不会进入到刷新状态,这也就是为什么我们需要在拿到数据之后结束刷新的原因。
既然知道了原因,那平时开发中注意这点就可以保证不会有问题了。但是对于我们重构代码或者调整代码来说,可能会很容易忽视掉这个情况,我也是遇到了这种情况,所以总结了一句话:
列表测试翻三页,上拉下拉都正确。
下拉的情况我们一般很容易发现,因为就是第一页数据,很容易看到问题现象,但是上拉刷新状态很容易被我们忽视掉,如果第二页数据正常,我们看到了数据,却看不到刷新控件的状态,有可能就结束了测试,其实这时候拉到底部,可能刷新控件还是刷新状态,那么第三页的请求便永远不会触发。