Open JKjiangnan opened 7 years ago
可能是你刷新的方式不对。如果你不是要重置页面,就不要调用SwipeTableView
的-reloadData:
,此时若只是刷新当前的 itemview
,就只需要更新数据源,然后调用当前itemView
自己的刷新就行了,比如,table\collection 就直接调用 table\collection 的-reloadData:
方法。
没有调用SwipeTableView 的刷新, 刷新的是当前的itemview 中的tableview
我用你的demo试的 数据较少时候, 上拉刷新后也会跳到顶部, 我每次加载两条数据, 上拉加载 放在 CustomTableView 中 用的mj_footer
刚才测了一下,确实有这个问题。
目前,使用 MJ 的 backfooter 便会造成这个问题。
问题出现在 mj 结束刷新动画改变 inset 时造成的。在2.x 版本中不会对滚动中的 item 的 offset 做存储,所以在刷新之后,swipe 在 KVO 中不能对 offset 做保存恢复,而mj 对 insert 的动画处理导致 offset 根据内容重新调整。同时,3.0版本中,由于 inset 变化出发 scrollview 的滚动代理,当前 item 的 offset 的记录也因为 offset 的重新调整而变化。
解决的话,建议使用3.0版本同时不使用 backfooter;或者对 backfooter 继承自定义,修改下-setState:
方法,在改变 insert 时对 offset 不做更改;或者在 swipe 的代码中,对 MJ 的-setSate:
以及动画执行的状态监听,在结束刷新时不做 offset 的更改或者记录。
我上拉加载也会跳到顶部,请问目前有什么好的解决方法么?
我的header设置的比较高, header+section 满屏了, 这时候上拉加载, 每次只增加一条或两条数据, 刷新之后 会跳到顶部, 效果不理想, 该如何改进