YOUPAISelectOccupationVC.m 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. //
  2. // YOUPAISelectOccupationVC.m
  3. // MSYOUPAI
  4. //
  5. // Created by admin on 2022/3/9.
  6. // Copyright © 2022 MS. All rights reserved.
  7. //
  8. #import "YOUPAISelectOccupationVC.h"
  9. @interface YOUPAISelectOccupationVC ()
  10. @end
  11. @implementation YOUPAISelectOccupationVC
  12. -(UIView *)customView{
  13. if(_customView == nil){
  14. _customView = [UIView new];
  15. _customView.backgroundColor = UIColor.whiteColor;
  16. }
  17. return _customView;
  18. }
  19. -(YOUPAIPickerViewHeader *)youpaipHeader{
  20. if(_youpaipHeader == nil){
  21. _youpaipHeader = [YOUPAIPickerViewHeader new];
  22. _youpaipHeader.backgroundColor = UIColor.whiteColor;
  23. [_youpaipHeader.youpaipCommitBtn addTarget:self action:@selector(confirmBtnClick) forControlEvents:UIControlEventTouchUpInside];
  24. [_youpaipHeader.youpaipCancleBtn addTarget:self action:@selector(cancelBtnClick) forControlEvents:UIControlEventTouchUpInside];
  25. }
  26. return _youpaipHeader;
  27. }
  28. -(PGPickerView *)pickerView{
  29. if( _pickerView == nil){
  30. _pickerView = [PGPickerView new];
  31. _pickerView.type = PGPickerViewLineTypeline;
  32. _pickerView.lineBackgroundColor = [UIColor clearColor];
  33. _pickerView.lineHeight = 0.0f;
  34. _pickerView.verticalLineBackgroundColor = [UIColor clearColor];
  35. _pickerView.verticalLineWidth = 0.0f;
  36. _pickerView.backgroundColor = [UIColor whiteColor];
  37. _pickerView.isHiddenMiddleText = YES;
  38. _pickerView.middleTextColor = [[UIColor whiteColor] colorWithAlphaComponent:0.2f];
  39. _pickerView.textColorOfSelectedRow = LZ273145Color;
  40. _pickerView.textColorOfOtherRow = LZD3D1D7Color;
  41. _pickerView.textFontOfSelectedRow = LCFont(17);
  42. _pickerView.textFontOfOtherRow = LCFont(17);
  43. _pickerView.lineBackgroundColor = [UIColor clearColor];
  44. _pickerView.delegate = self;
  45. _pickerView.dataSource = self;
  46. }
  47. return _pickerView;
  48. }
  49. - (void)viewDidLoad {
  50. [super viewDidLoad];
  51. [self.baseView setHidden:true];
  52. self.isTouchDismiss = true;
  53. [self youpaifInitValue];
  54. [self youpaifMakeUI];
  55. [self youpaifMakeLayout];
  56. }
  57. -(void)youpaifInitValue{
  58. }
  59. -(void)setSelectIndex:(NSIndexPath*)selectIndex{
  60. if (_selectIndex == selectIndex){
  61. return;
  62. }
  63. _selectIndex = selectIndex;
  64. [self.pickerView reloadAllComponents];
  65. }
  66. - (void)youpaifMakeUI{
  67. [self.view addSubview:self.customView];
  68. [self.customView addSubview:self.youpaipHeader];
  69. [self.customView addSubview:self.pickerView];
  70. }
  71. -(void)youpaifMakeLayout{
  72. [_pickerView mas_makeConstraints:^(MASConstraintMaker *make) {
  73. make.bottom.mas_equalTo(-(SafeHeight+8));
  74. make.left.mas_equalTo(8);
  75. make.right.mas_equalTo(-8);
  76. make.height.mas_equalTo(180);
  77. }];
  78. [_youpaipHeader mas_makeConstraints:^(MASConstraintMaker *make) {
  79. make.top.mas_equalTo(0);
  80. make.left.right.mas_equalTo(0);
  81. make.height.mas_equalTo(49);
  82. }];
  83. [_customView mas_makeConstraints:^(MASConstraintMaker *make) {
  84. make.bottom.mas_equalTo(0);
  85. make.left.right.mas_equalTo(0);
  86. make.height.mas_equalTo(209+SafeHeight+49);
  87. }];
  88. [self.view layoutIfNeeded];
  89. [LCTools clipCorner:UIRectCornerTopLeft|UIRectCornerTopRight View:_customView size:CGSizeMake(16, 16)];
  90. }
  91. - (void)cancelBtnClick{
  92. [self dismissViewControllerAnimated:true completion:nil];
  93. }
  94. - (void)confirmBtnClick{
  95. if (self.delegate && [self.delegate respondsToSelector:@selector(didSelectOccupation:occupation:)]) {
  96. NSDictionary *dic = [self.dataSouce objectAtIndex:_selectIndex.section];
  97. NSArray *rowdata = dic[@"val"];
  98. [self.delegate didSelectOccupation:self occupation:rowdata[_selectIndex.row]];
  99. }
  100. [self dismissViewControllerAnimated:true completion:nil];
  101. }
  102. - (NSInteger)numberOfComponentsInPickerView:(PGPickerView *)pickerView{
  103. return 2;
  104. }
  105. - (NSInteger)pickerView:(PGPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
  106. if (component == 0){
  107. return self.dataSouce.count;
  108. }else{
  109. NSDictionary *dic = [self.dataSouce objectAtIndex:self.selectIndex.section];
  110. NSArray *datas = dic[@"val"];
  111. return datas.count;
  112. }
  113. }
  114. - (NSString *)pickerView:(PGPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
  115. if (component == 0){
  116. NSDictionary *dic = [self.dataSouce objectAtIndex:row];
  117. return dic[@"key"];
  118. }else{
  119. NSDictionary *dic = [self.dataSouce objectAtIndex:_selectIndex.section];
  120. NSArray *rowdata = dic[@"val"];
  121. if (row< [rowdata count]){
  122. return rowdata[row];
  123. }else{
  124. return @"";
  125. }
  126. }
  127. }
  128. - (void)pickerView:(PGPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
  129. if(component==0){
  130. NSInteger select = MIN(row,_dataSouce.count-1);
  131. self.selectIndex = [NSIndexPath indexPathForRow:0 inSection:select];
  132. }else{
  133. NSDictionary *dic = [self.dataSouce objectAtIndex:_selectIndex.section];
  134. NSArray *rowdata = dic[@"val"];
  135. NSInteger select = MIN(row,rowdata.count-1);
  136. self.selectIndex = [NSIndexPath indexPathForRow:select inSection:_selectIndex.section];
  137. }
  138. }
  139. @end