InventoryAnalysisDataListController.m 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. //
  2. // InventoryAnalysisDataListController.m
  3. // IBOSS
  4. //
  5. // Created by ssl on 2018/1/4.
  6. // Copyright © 2018年 elongtian. All rights reserved.
  7. //
  8. #import "InventoryAnalysisDataListController.h"
  9. #import "InventoryAnalysisDataListCell.h"
  10. #import "SalesPaymentRankFrame.h"
  11. @interface InventoryAnalysisDataListController ()<UITableViewDelegate,UITableViewDataSource,RefreshTableViewDelegate>{
  12. /**
  13. 当前页数
  14. */
  15. int mPage;
  16. /**
  17. 每页显示的记录数
  18. */
  19. int mRecorders;
  20. /**
  21. 是否是最后一页
  22. */
  23. Boolean isLastPage;
  24. }
  25. @end
  26. @implementation InventoryAnalysisDataListController
  27. #pragma mark - 公共函数
  28. /**
  29. 视图加载完成函数
  30. */
  31. - (void)viewDidLoad {
  32. [super viewDidLoad];
  33. [self initUI];
  34. mPage = 1;
  35. mRecorders = 20;
  36. }
  37. #pragma mark - 委托函数
  38. /**
  39. 单元格cell个数
  40. @param tableView <#tableView description#>
  41. @param section <#section description#>
  42. @return <#return value description#>
  43. */
  44. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  45. {
  46. return [_rankPagingList count];
  47. }
  48. /**
  49. <#Description#>
  50. @param tableView <#tableView description#>
  51. @return <#return value description#>
  52. */
  53. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  54. return 1;
  55. }
  56. /**
  57. 高度
  58. @param tableView <#tableView description#>
  59. @param indexPath <#indexPath description#>
  60. @return <#return value description#>
  61. */
  62. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
  63. return 75;
  64. }
  65. /**
  66. 每个单元格cell
  67. @param tableView <#tableView description#>
  68. @param indexPath <#indexPath description#>
  69. @return <#return value description#>
  70. */
  71. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  72. {
  73. static NSString *cellIdentifier = @"PaymentRankCell";
  74. InventoryAnalysisDataListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier ];
  75. if(!cell){
  76. cell = [[InventoryAnalysisDataListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
  77. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  78. [cell initUI];
  79. }
  80. SalesPaymentRankFrame *frame = [_rankPagingList objectAtIndex:indexPath.row];
  81. [cell loadData:frame.paymentRankModel];
  82. return cell;
  83. }
  84. /**
  85. 加载更多回调函数
  86. */
  87. - (void)LoadMoreList:(RefreshTableView *)sender {
  88. if (_rankList.count <= mRecorders) {
  89. isLastPage = true;
  90. _refreshTableView.mbMoreHidden = YES;
  91. return;
  92. }
  93. mPage++;
  94. if (isLastPage) {
  95. return;
  96. }
  97. if (mPage * mRecorders >= _rankList.count) {// 判断是否为最后一页
  98. isLastPage = true;
  99. } else {
  100. isLastPage = false;
  101. }
  102. NSArray *subArray = [_pageModel getObjects:mPage];
  103. [_rankPagingList addObjectsFromArray:subArray];
  104. [_refreshTableView FinishLoading];
  105. _refreshTableView.mbMoreHidden = NO;
  106. [_refreshTableView reloadData];
  107. }
  108. /**
  109. 下拉刷新回调函数
  110. */
  111. - (void)ReloadList:(RefreshTableView *)sender{
  112. if (_rankPagingList != nil && _rankPagingList.count > 0) {
  113. [_rankPagingList removeAllObjects];
  114. [_refreshTableView reloadData];
  115. }
  116. mPage = 1;
  117. isLastPage = false;
  118. _pageModel = [[PageModel alloc]init];
  119. [_pageModel setPage:_rankList pageRecorders:mRecorders];
  120. NSArray *subArray = [_pageModel getObjects:mPage];
  121. [_rankPagingList addObjectsFromArray:subArray];
  122. [_refreshTableView FinishLoading];
  123. _refreshTableView.mbMoreHidden=NO;
  124. [_refreshTableView reloadData];
  125. }
  126. /**
  127. 支持下拉刷新回调函数
  128. */
  129. - (BOOL)CanRefreshTableView:(RefreshTableView *)sender {
  130. return YES;
  131. }
  132. /**
  133. 显示下拉更新
  134. @param scrollView <#scrollView description#>
  135. */
  136. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  137. if (scrollView.isDragging) {//显示下拉更新
  138. if (_refreshTableView.mRefreshHeader.state == PullRefreshPulling && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && [_refreshTableView CanRefresh]) {
  139. [_refreshTableView.mRefreshHeader setState:PullRefreshNormal];
  140. }
  141. else if (_refreshTableView.mRefreshHeader.state == PullRefreshNormal && scrollView.contentOffset.y < -65.0f && [_refreshTableView CanRefresh]) {//显示松开更新
  142. [_refreshTableView.mRefreshHeader setState:PullRefreshPulling];
  143. }
  144. }
  145. }
  146. #pragma mark - 私有函数
  147. /**
  148. 初始化UI
  149. */
  150. -(void)initUI{
  151. UIView *separatorView=[UIView new];
  152. separatorView.frame = CGRectMake(0, 0, Screen_Width, 10);
  153. separatorView.backgroundColor = LineBackgroundColor;
  154. separatorView.translatesAutoresizingMaskIntoConstraints = NO;
  155. [self.view addSubview:separatorView];
  156. _refreshTableView = [[RefreshTableView alloc]
  157. initWithFrame:CGRectMake(0,
  158. CGRectGetMaxY(separatorView.frame),
  159. self.view.frame.size.width,
  160. self.view.frame.size.height-10)];
  161. _refreshTableView.translatesAutoresizingMaskIntoConstraints = NO;
  162. _refreshTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  163. _refreshTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
  164. _refreshTableView.backgroundColor = [UIColor whiteColor];
  165. _refreshTableView.delegate = self;
  166. _refreshTableView.mbMoreHidden=NO;
  167. [self.view addSubview:_refreshTableView];
  168. }
  169. /**
  170. 刷新数据
  171. */
  172. -(void)refreshData{
  173. mPage=1;
  174. _rankPagingList = [[NSMutableArray alloc]init];
  175. _pageModel = [[PageModel alloc]init];
  176. [_pageModel setPage:_rankList pageRecorders:mRecorders];
  177. NSArray *subArray = [_pageModel getObjects:mPage];
  178. [_rankPagingList addObjectsFromArray:subArray];
  179. [_refreshTableView reloadData];
  180. }
  181. @end