前言
很多APP都是滑动到底部时点击加载更多才会加载数据,这样用户体验就会有间断感,所以我们想用户看到最后时自动加载数据 怎么做呢
有人会说用一下的这个方法
1 | - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ |
这种方法没法实现
的 这种方法确实能判断滑动到最后 但是加载数据时 这个方法又回被调用 造成无限循环 所以不建议使用
这里我使用的是这个方法
1 | - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ |
具体代码
定义一个全局变量@property(nonatomic)bool isLoading;
来标示是否正在加载数据
然后根据滑动的高度做判断 看是否滑动到了底部
1 | - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ |
但是有这样一个问题 如果已经确认没有更多数据的时候 我们会在加载更多
的方法里直接设置self.isLoading = false;
但是由于视图动画还在滑动就会反复触发加载更多
的方法
解决方法就是延迟设置self.isLoading = false;
1 | [SVProgressHUD showErrorWithStatus:@"没有更多数据了"]; |
这样就能确保不会多次加载了