SalesPaymentRankDataListViewController.m 6.0 KB

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