正常的列表下拉请求第一页,上拉加载更多。而聊天对话中的 UITableView 与正常列表是有区别的,都是默认显示最新的对话,下拉请求更多。下拉后要处理数据源的反向拼接和定位滚动的位置。
数据源拼接操作不当,就会出现数据错乱。而定位滚动如果处理不当,会出现界面闪动,定位不准确的问题。
这里就按照微信的聊天下拉效果,写下代码实现:
假设网络请求,获取到数据 responeData 数组:
一、数据拼接。
//先把新的数据添加到数组tempDataArray里
NSMutableArray *tempDataArray = [NSMutableArray array];
[tempDataArray addObjectsFromArray:responeData];
//把数据源中已经存在的数据再次加入tempDataArray。
if (self.model.dataSource.count) {
[tempDataArray addObjectsFromArray:self.model