InventoryUnfreezeHomeViewController.m 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. //
  2. // InventoryUnfreezeHomeViewController.m
  3. // IBOSS
  4. //
  5. // Created by 关宏厚 on 2020/5/9.
  6. // Copyright © 2020 elongtian. All rights reserved.
  7. //
  8. #import "InventoryUnfreezeHomeViewController.h"
  9. @interface InventoryUnfreezeHomeViewController ()
  10. @end
  11. /**
  12. 导航数
  13. */
  14. static int navcount = 2;
  15. @implementation InventoryUnfreezeHomeViewController
  16. - (void)viewDidLoad {
  17. [super viewDidLoad];
  18. [self loadNavStyle];
  19. [self initUI];
  20. [self setMainSrollView];
  21. [self sliderWithTag:self.currentIndex+1];
  22. }
  23. /**
  24. 导航按钮样式
  25. */
  26. - (void)loadNavStyle
  27. {
  28. self.navigationItem.title = @"库存解冻";
  29. //返回
  30. UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
  31. [button setImage:[UIImage imageNamed:@"icon_back"] forState:UIControlStateNormal];
  32. [button addTarget:self action:@selector(goBack)
  33. forControlEvents:UIControlEventTouchUpInside];
  34. button.frame = CGRectMake(0, 0,45,22);
  35. UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithCustomView:button];
  36. self.navigationItem.leftBarButtonItem = menuButton;
  37. }
  38. /*
  39. 初始化UI
  40. */
  41. - (void)initUI
  42. {
  43. UIView *navView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, Screen_Width, 40)];
  44. [self.view addSubview:navView];
  45. [self.view setBackgroundColor:[UIColor whiteColor]];
  46. _inventoryFreezedOrderSearchButton = [UIButton buttonWithType:UIButtonTypeCustom];
  47. [_inventoryFreezedOrderSearchButton setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
  48. [_inventoryFreezedOrderSearchButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  49. _inventoryFreezedOrderSearchButton.frame = CGRectMake(0, 0, Screen_Width/navcount, navView.frame.size.height);
  50. _inventoryFreezedOrderSearchButton.titleLabel.font = [UIFont systemFontOfSize:ButtonFontOfSize];
  51. [_inventoryFreezedOrderSearchButton addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventTouchUpInside];
  52. [_inventoryFreezedOrderSearchButton setTitle:@"订单查询" forState:UIControlStateNormal];
  53. _inventoryFreezedOrderSearchButton.tag = 1;
  54. _inventoryFreezedOrderSearchButton.selected = YES;
  55. [navView addSubview:_inventoryFreezedOrderSearchButton];
  56. _inventoryUnfreezeOrderSearchButton= [UIButton buttonWithType:UIButtonTypeCustom];
  57. _inventoryUnfreezeOrderSearchButton.frame = CGRectMake(CGRectGetMaxX(_inventoryFreezedOrderSearchButton.frame),0, Screen_Width/navcount, navView.frame.size.height);
  58. [_inventoryUnfreezeOrderSearchButton setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
  59. [_inventoryUnfreezeOrderSearchButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  60. _inventoryUnfreezeOrderSearchButton.titleLabel.font = [UIFont systemFontOfSize:ButtonFontOfSize];
  61. [_inventoryUnfreezeOrderSearchButton addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventTouchUpInside];
  62. [_inventoryUnfreezeOrderSearchButton setTitle:@"解冻订单" forState:UIControlStateNormal];
  63. _inventoryUnfreezeOrderSearchButton.titleLabel.font = [UIFont systemFontOfSize:ButtonFontOfSize];
  64. _inventoryUnfreezeOrderSearchButton.tag = 2;
  65. [navView addSubview: _inventoryUnfreezeOrderSearchButton];
  66. _sliderLabel = [[UILabel alloc]initWithFrame:CGRectMake(_inventoryFreezedOrderSearchButton.frame.origin.x, 40-2, Screen_Width/navcount, 2)];
  67. UIView *line = [[UIView alloc] initWithFrame:CGRectMake(((Screen_Width/navcount)-70)/2, 0, 70, 2)];
  68. line.backgroundColor = [UIColor redColor];
  69. [_sliderLabel addSubview:line];
  70. [navView addSubview:_sliderLabel];
  71. }
  72. /**
  73. 按钮点击事件
  74. @param sender <#sender description#>
  75. */
  76. - (void)sliderAction:(UIButton *)sender{
  77. if (self.currentIndex == sender.tag) {
  78. return;
  79. }
  80. [self.view endEditing:YES];
  81. [self sliderAnimationWithTag:sender.tag];
  82. [UIView animateWithDuration:0.3 animations:^{
  83. self->_mainScrollView.contentOffset = CGPointMake(Screen_Width*(sender.tag-1), 0);
  84. } completion:^(BOOL finished) {
  85. }];
  86. }
  87. /**
  88. 滑动tag
  89. @param tag <#tag description#>
  90. */
  91. - (void)sliderAnimationWithTag:(NSInteger)tag{
  92. self.currentIndex = tag;
  93. _inventoryFreezedOrderSearchButton.selected = NO;
  94. _inventoryUnfreezeOrderSearchButton.selected = NO;
  95. UIButton *sender = [self buttonWithTag:tag];
  96. sender.selected = YES;
  97. //动画
  98. [UIView animateWithDuration:0.3 animations:^{
  99. self->_sliderLabel.frame = CGRectMake(sender.frame.origin.x, self->_sliderLabel.frame.origin.y, self->_sliderLabel.frame.size.width, self->_sliderLabel.frame.size.height);
  100. } completion:^(BOOL finished) {
  101. }];
  102. }
  103. /**
  104. * 返回函数
  105. */
  106. - (void)goBack
  107. {
  108. [self.navigationController popViewControllerAnimated:YES];
  109. }
  110. /**
  111. 安全区视图发生变化
  112. */
  113. -(void)viewSafeAreaInsetsDidChange{
  114. self.view.backgroundColor = [UIColor whiteColor];
  115. _mainScrollView.frame = CGRectMake(0, 40, Screen_Width,self.view.safeAreaLayoutGuide.layoutFrame.size.height-40);
  116. for (NSInteger i = 0; i < _mainScrollView.subviews.count; i++) {
  117. _mainScrollView.subviews[i].frame = CGRectMake(Screen_Width * i, 0, Screen_Width,CGRectGetHeight(_mainScrollView.frame));
  118. }
  119. [self.inventoryFreezedOrderSearchVC viewSafeAreaInsetsDidChange];
  120. [self.inventoryUnFreezeOrderSearchVC viewSafeAreaInsetsDidChange];
  121. [super viewSafeAreaInsetsDidChange];
  122. }
  123. /*
  124. 获得导航按钮
  125. */
  126. - (UIButton *)buttonWithTag:(NSInteger )tag{
  127. if (tag == 1) {
  128. return _inventoryFreezedOrderSearchButton;
  129. }
  130. else if (tag == 2){
  131. return _inventoryUnfreezeOrderSearchButton;
  132. }
  133. else{
  134. return nil;
  135. }
  136. }
  137. /**
  138. 产品搜索vc
  139. @return <#return value description#>
  140. */
  141. - (InventoryFreezedOrderSearchViewController *)inventoryFreezedOrderSearchVC{
  142. if (_inventoryFreezedOrderSearchVC == nil) {
  143. _inventoryFreezedOrderSearchVC = [[InventoryFreezedOrderSearchViewController alloc] init];
  144. _inventoryFreezedOrderSearchVC.cNav=self.navigationController;
  145. }
  146. return _inventoryFreezedOrderSearchVC;
  147. }
  148. /**
  149. 历史订单vc
  150. @return
  151. */
  152. - (InventoryUnfreezeOrderSearchViewController *)inventoryUnFreezeOrderSearchVC{
  153. if (_inventoryUnFreezeOrderSearchVC == nil) {
  154. _inventoryUnFreezeOrderSearchVC= [[InventoryUnfreezeOrderSearchViewController alloc] init];
  155. _inventoryUnFreezeOrderSearchVC.cNav=self.navigationController;
  156. }
  157. return _inventoryUnFreezeOrderSearchVC;
  158. }
  159. /**
  160. 初始化srollView
  161. */
  162. - (void)setMainSrollView{
  163. _mainScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 40, Screen_Width, self.view.frame.size.height)];
  164. _mainScrollView.delegate = self;
  165. _mainScrollView.backgroundColor = [UIColor whiteColor];
  166. _mainScrollView.pagingEnabled = YES;
  167. _mainScrollView.showsHorizontalScrollIndicator = NO;
  168. _mainScrollView.showsVerticalScrollIndicator = NO;
  169. [self.view addSubview:_mainScrollView];
  170. NSArray *views = @[self.inventoryFreezedOrderSearchVC.view,self.inventoryUnFreezeOrderSearchVC.view];
  171. for (NSInteger i = 0; i< views.count; i++) {
  172. //把三个vc的view依次贴到mainScrollView上面
  173. UIView *pageView = [[UIView alloc]initWithFrame:CGRectMake(Screen_Width * i, 0, _mainScrollView.frame.size.width, _mainScrollView.frame.size.height - 100)];
  174. [pageView addSubview:views[i]];
  175. [_mainScrollView addSubview:pageView];
  176. }
  177. _mainScrollView.contentSize = CGSizeMake(Screen_Width*(views.count), 0);
  178. //滚动到_currentIndex对应的tab
  179. [_mainScrollView setContentOffset:CGPointMake((_mainScrollView.frame.size.width)*_currentIndex, 0) animated:YES];
  180. }
  181. /**
  182. 滑动label位置
  183. @param scrollView <#scrollView description#>
  184. */
  185. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  186. //实时计算当前位置,实现和titleView上的按钮的联动
  187. CGFloat contentOffSetX = scrollView.contentOffset.x;
  188. CGFloat X = contentOffSetX/ navcount;
  189. CGRect frame = _sliderLabel.frame;
  190. frame.origin.x = X;
  191. _sliderLabel.frame = frame;
  192. }
  193. /**
  194. 滑动完成
  195. @param scrollView <#scrollView description#>
  196. */
  197. - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
  198. CGFloat contentOffSetX = scrollView.contentOffset.x;
  199. int index_ = contentOffSetX/Screen_Width;
  200. [self sliderWithTag:index_+1];
  201. }
  202. /**
  203. 滑动tag
  204. @param tag <#tag description#>
  205. */
  206. - (void)sliderWithTag:(NSInteger)tag{
  207. self.currentIndex = tag;
  208. _inventoryFreezedOrderSearchButton.selected = NO;
  209. _inventoryUnfreezeOrderSearchButton.selected = NO;
  210. UIButton *sender = [self buttonWithTag:tag];
  211. sender.selected = YES;
  212. //动画
  213. _sliderLabel.frame = CGRectMake(sender.frame.origin.x, _sliderLabel.frame.origin.y, _sliderLabel.frame.size.width, _sliderLabel.frame.size.height);
  214. }
  215. @end