NMPaginator 是一个简单的 Objective-C 类,可为您处理分页。它简化了从使用 page
和 per_page
参数的客户服务网络获取结果的显示。
例如 Flickr API
http://api.flickr.com/services/rest/?method=flickr.photos.search&text=beach&per_page=20&page=2
示例项目还包括一个 UITableView,当您向下滚动时会自动加载下一页的结果。
fllickr API 示例的代码位于示例项目内。
将 NMPaginator.h
和 NMPaginator.m
复制到您的项目中。就这样。
您需要子类化 NMPaginator 并实现 fetchResultsWithPage:pageSize:
方法。
// MyPaginator.h
#import <Foundation/Foundation.h>
#import "NMPaginator.h"
@interface MyPaginator : NMPaginator
@end
// MyPaginator.m
#import "MyPaginator.h"
@interface MyPaginator() {
}
- (void)receivedResults:(NSArray *)results total:(NSInteger)total;
- (void)failed;
@end
@implementation MyPaginator
- (void)fetchResultsWithPage:(NSInteger)page pageSize:(NSInteger)pageSize
{
// you code goes here
// once you receive the results for the current page, just call [self receivedResults:results total:total];
}
@end
在您的 ViewController 中,您可以像这样实例化分页器:
// ViewController.m
self.myPaginator = [[MyPaginator alloc] initWithPageSize:10 delegate:self];
然后像这样请求结果:
// ViewController.m
[self.myPaginator fetchNextPage];
您将通过代理方法获取结果。
// ViewController.m
- (void)paginator:(id)paginator didReceiveResults:(NSArray *)results
{
// handle new results
}
我叫 Nicolas Mondollot,您可以在 twitter 上关注我。
为了展示 NMPaginator,我使用了来自伟大的 Stanford CS193P 课程 的 FlickFetcher 类。
你可以随意使用这段代码(商业或免费)。不过,署名会更好。