SalesAchievementDataListViewController.m 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. //
  2. // DataListViewController.m
  3. // IBOSS
  4. //
  5. // Created by guan hong hou on 2017/8/21.
  6. // Copyright © 2017年 elongtian. All rights reserved.
  7. //
  8. // 功能描述:销售业绩列表控制器
  9. #import "SalesAchievementDataListViewController.h"
  10. #import "SalesAchievementDataListCell.h"
  11. @interface SalesAchievementDataListViewController (){
  12. /**
  13. 页号
  14. */
  15. int mPage;
  16. /**
  17. 每页记录数
  18. */
  19. int mRecorders;
  20. /**
  21. 是否最后一页
  22. */
  23. Boolean isLastPage;
  24. }
  25. @end
  26. @implementation SalesAchievementDataListViewController
  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. SalesAchievementListFrame *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 = @"AchievementReportCell";
  82. SalesAchievementDataListCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier ];
  83. cell = [[SalesAchievementDataListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
  84. cell.selectionStyle=UITableViewCellSelectionStyleNone;
  85. SalesAchievementListFrame *frame = [_rankPagingList objectAtIndex:indexPath.row];
  86. [cell setSalesAchievementListFrame: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. return;
  97. }
  98. mPage++;
  99. if (isLastPage) {
  100. return;
  101. }
  102. if (mPage * mRecorders >= _rankList.count) {// 判断是否为最后一页
  103. isLastPage = true;
  104. } else {
  105. isLastPage = false;
  106. }
  107. NSArray *subArray = [_pageModel getObjects:mPage];
  108. [_rankPagingList addObjectsFromArray:subArray];
  109. [_refreshTableView FinishLoading];
  110. _refreshTableView.mbMoreHidden = NO;
  111. [_refreshTableView reloadData];
  112. }
  113. /**
  114. 下拉刷新回调函数
  115. */
  116. - (void)ReloadList:(RefreshTableView *)sender{
  117. if (_rankPagingList != nil && _rankPagingList.count > 0) {
  118. [_rankPagingList removeAllObjects];
  119. [_refreshTableView reloadData];
  120. }
  121. mPage = 1;
  122. isLastPage = false;
  123. _pageModel = [[PageModel alloc]init];
  124. [_pageModel setPage:_rankList pageRecorders:mRecorders];
  125. NSArray *subArray = [_pageModel getObjects:mPage];
  126. [_rankPagingList addObjectsFromArray:subArray];
  127. [_refreshTableView FinishLoading];
  128. _refreshTableView.mbMoreHidden=NO;
  129. [_refreshTableView reloadData];
  130. }
  131. /**
  132. 支持下拉刷新回调函数
  133. */
  134. - (BOOL)CanRefreshTableView:(RefreshTableView *)sender {
  135. return YES;
  136. }
  137. /**
  138. 显示下拉更新
  139. @param scrollView <#scrollView description#>
  140. */
  141. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  142. if (scrollView.isDragging) {//显示下拉更新
  143. if (_refreshTableView.mRefreshHeader.state == PullRefreshPulling && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && [_refreshTableView CanRefresh]) {
  144. [_refreshTableView.mRefreshHeader setState:PullRefreshNormal];
  145. }
  146. else if (_refreshTableView.mRefreshHeader.state == PullRefreshNormal && scrollView.contentOffset.y < -65.0f && [_refreshTableView CanRefresh]) {//显示松开更新
  147. [_refreshTableView.mRefreshHeader setState:PullRefreshPulling];
  148. }
  149. }
  150. }
  151. #pragma mark - 私有函数
  152. /**
  153. 初始化UI
  154. */
  155. -(void)initUI{
  156. UIView *separatorView = [UIView new];
  157. separatorView.frame = CGRectMake(0, 0, Screen_Width, 10);
  158. separatorView.backgroundColor = LineBackgroundColor;
  159. [self.view addSubview:separatorView];
  160. _refreshTableView = [[RefreshTableView alloc]
  161. initWithFrame:CGRectMake(0,
  162. CGRectGetMaxY(separatorView.frame),
  163. self.view.frame.size.width,
  164. Screen_Height - CGRectGetMaxY(separatorView.frame ) - 150)];
  165. _refreshTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  166. _refreshTableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
  167. _refreshTableView.backgroundColor = [UIColor whiteColor];
  168. _refreshTableView.delegate = self;
  169. [self.view addSubview:_refreshTableView];
  170. }
  171. /**
  172. 刷新数据
  173. */
  174. -(void)refreshData{
  175. mPage=1;
  176. _rankPagingList = [[NSMutableArray alloc]init];
  177. _pageModel = [[PageModel alloc]init];
  178. [_pageModel setPage:_rankList pageRecorders:mRecorders];
  179. NSArray *subArray = [_pageModel getObjects:mPage];
  180. [_rankPagingList addObjectsFromArray:subArray];
  181. [_refreshTableView reloadData];
  182. }
  183. @end