SWBasePagingQueryModel
是一个分页查询工具
pod 'SWBasePagingQueryModel'
我们在开发过程中经常遇到需要分页查询请求的页面,在实现下拉刷新和上拉加载更多时,每次都要写很多重复代码。现在有了这个工具,你可以用一行代码搞定 tableView 和 collectionView 的下拉刷新和上拉加载更多。
[self.tableView setDefaultPagingQueryWithModel:[MyPagingQueryModel new] completion:^(NSError *error) {
@strongify(self)
if(self.tableView.pagingQueryModel.fetchError){
[self.view showHUDWithDetailMessage:self.tableView.pagingQueryModel.fetchError.localizedDescription hideWithDelay:1.0f];
}
}];
如果你想使用默认样式的 MJRefresh,可以调用下面的方法
- (void)setDefaultPagingQueryWithModel:(SWBasePagingQueryModel *)pagingQueryModel completion:(SWFetchListCompletedBlock)fetchListCompletedBlock;
如果你想使用自定义样式的 MJRefresh,可以调用下面的方法
- (void)setCustomPagingQueryWithMjHeader:(MJRefreshNormalHeader *)mjHeader mjFooter:(MJRefreshAutoNormalFooter *)mjFooter pagingQueryModel:(SWBasePagingQueryModel *)pagingQueryModel completion:(SWFetchListCompletedBlock)fetchListCompletedBlock;
自定义一个继承自 SWBasePagingQueryModel 的类,然后在自定义类中实现以下方法
/**
每页数据的数量,你需要重写此方法
*/
- (NSUInteger)pageSize;
/**
网络异步请求,你需要重写此方法
@param pageIndex 刷新的索引,从0开始
@param completedBlock 异步请求完成的block,在网络请求结束之后必须要调用此block;
error:网络请求之后返回的错误
totalCount:分页数据的总个数,如果不知道可以传0
result:请求到的当前页的数据
*/
- (void)asyncFetchWithPageIndex:(NSInteger)pageIndex completion:(void(^)(NSError *error, NSInteger totalCount, NSArray *result))completedBlock;