| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- //
- // PageModel.m
- // IBOSS
- //
- // Created by guan hong hou on 2017/8/22.
- // Copyright © 2017年 elongtian. All rights reserved.
- //
- // 功能描述:分页模型
- #import "PageModel.h"
- @interface PageModel (){
- NSInteger page; // 当前页
- NSInteger totalPages; // 总页数
- NSInteger pageRecorders;// 每页数据数
- NSInteger totalRows; // 总数据数
- NSInteger pageStartRow;// 每页的起始数
- NSInteger pageEndRow; // 每页显示数据的终止数
- Boolean hasNextPage; // 是否有下一页
- Boolean hasPreviousPage; // 是否有前一页
- NSMutableArray *dataList;//数据列表
- }
- @end
- @implementation PageModel
- /**
- 初始化分页数组和记录数
- @param dataArray <#dataArray description#>
- @param recorders <#recorders description#>
- */
- -(void)setPage:(NSMutableArray*)dataArray pageRecorders:(NSInteger)recorders{
- page=0;
- totalPages = 0;
- totalRows = 0;
- pageStartRow = 0;
- pageEndRow = 0;
- hasNextPage = NO;
- hasPreviousPage = NO;
- pageRecorders = recorders;
- dataList= dataArray;
- totalRows = dataList.count;
- hasPreviousPage = false;
- if ((totalRows % pageRecorders) == 0) {
- totalPages = totalRows / pageRecorders;
- } else {
- totalPages = totalRows / pageRecorders + 1;
- }
-
- if (page >= totalPages) {
- hasNextPage = false;
- } else {
- hasNextPage = true;
- }
-
- if (totalRows < pageRecorders) {
- pageStartRow = 0;
- pageEndRow = totalRows;
- } else {
- pageStartRow = 0;
- pageEndRow = pageRecorders;
- }
-
- }
- /**
- 处理页数
- */
- -(void)disposePage{
- if (page == 0) {
- page = 1;
- }
-
- if ((page - 1) > 0) {
- hasPreviousPage = true;
- } else {
- hasPreviousPage = false;
- }
-
- if (page >= totalPages) {
- hasNextPage = false;
- } else {
- hasNextPage = true;
- }
- }
- /**
- 获取分页的子列表
- @param pageNumber <#pageNumber description#>
- @return <#return value description#>
- */
- -(NSArray*)getObjects:(NSInteger)pageNumber{
-
- [self setPage:pageNumber];
- [self disposePage];
- if (page * pageRecorders < totalRows) {// 判断是否为最后一页
- pageEndRow = page * pageRecorders;
- pageStartRow = pageEndRow - pageRecorders;
- } else {
- pageEndRow = totalRows;
- pageStartRow = pageRecorders * (totalPages - 1);
- }
-
- NSArray *objects = nil;
- if (dataList!=nil&&dataList.count>0) {
- NSInteger recorders= pageEndRow-pageStartRow;
- objects = [dataList subarrayWithRange:NSMakeRange(pageStartRow,recorders)];
- }
-
- return objects;
- }
- /**
- 设置页号
- @param pageNumber <#pageNumber description#>
- */
- - (void)setPage:(NSInteger)pageNumber {
- page = pageNumber;
- }
- @end
|