// // 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