StandardsView.m 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. //
  2. // StandardsView.m
  3. // yunbaolive
  4. //
  5. // Created by ybRRR on 2020/2/26.
  6. // Copyright © 2020 cat. All rights reserved.
  7. //
  8. #import "StandardsView.h"
  9. @implementation StandardsView
  10. -(instancetype)initWithFrame:(CGRect)frame
  11. {
  12. self = [super initWithFrame:frame];
  13. if (self) {
  14. self.backgroundColor = UIColor.whiteColor;
  15. self.imageArray = [NSMutableArray array];
  16. imgWidth = (_window_width - 75)/4;
  17. [self createUI];
  18. }
  19. return self;
  20. }
  21. -(void)createUI{
  22. NSArray *titleArr = @[YZMsg(@"规格"),YZMsg(@"库存(件)"),YZMsg(@"单价(元)")];
  23. NSArray *pholderArr = @[YZMsg(@"最多15个字符"),YZMsg(@"最多9999999件"),YZMsg(@"最少1.00元")];
  24. for (int i = 0; i < titleArr.count; i ++) {
  25. UILabel *tLb = [[UILabel alloc]init];
  26. tLb.frame = CGRectMake(12, 50*i, 80, 50);
  27. if (![lagType isEqual:ZH_CN]) {
  28. tLb.frame = CGRectMake(12, 50*i, 100, 50);
  29. }
  30. tLb.font = [UIFont systemFontOfSize:14];
  31. tLb.text = titleArr[i];
  32. tLb.textColor = UIColor.darkGrayColor;
  33. tLb.adjustsFontSizeToFitWidth = YES;
  34. [self addSubview:tLb];
  35. UITextField *tf = [[UITextField alloc]init];
  36. tf.backgroundColor =RGB(245,245, 245);// RGB_COLOR(@"#302D41", 1);
  37. tf.textColor = [UIColor blackColor];
  38. tf.font = [UIFont systemFontOfSize:14];
  39. // tf.placeholder = [NSString stringWithFormat:@" %@",pholderArr[i]];
  40. tf.layer.cornerRadius = 3;
  41. tf.layer.masksToBounds = YES;
  42. tf.returnKeyType = UIReturnKeyDone;
  43. tf.delegate = self;
  44. NSMutableAttributedString*holderString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@",pholderArr[i]] attributes:@{NSForegroundColorAttributeName:[UIColor lightGrayColor]}];
  45. tf.attributedPlaceholder = holderString;
  46. [self addSubview:tf];
  47. [tf mas_makeConstraints:^(MASConstraintMaker *make) {
  48. make.left.equalTo(tLb.mas_right).offset(5);
  49. make.right.equalTo(self).offset(-20);
  50. make.centerY.equalTo(tLb);
  51. make.height.mas_equalTo(30);
  52. }];
  53. if ( i == 0) {
  54. _titleLb = tLb;
  55. _nameField = tf;
  56. [_nameField addTarget:self action:@selector(titleTextFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
  57. }else if (i == 1){
  58. _countField = tf;
  59. _countField.keyboardType = UIKeyboardTypeNumberPad;
  60. }else{
  61. _priceField = tf;
  62. _priceField.keyboardType = UIKeyboardTypeDefault;
  63. _priceField.delegate = self;
  64. }
  65. }
  66. [self layoutIfNeeded];
  67. _imgeBtn = [UIButton buttonWithType:0];
  68. _imgeBtn.frame = CGRectMake(15, self.priceField.bottom+15, imgWidth, imgWidth);
  69. _imgeBtn.backgroundColor = RGB(245, 245, 245);// RGB_COLOR(@"#302D41", 1);
  70. [_imgeBtn addTarget:self action:@selector(imageBtnClick:) forControlEvents:UIControlEventTouchUpInside];
  71. _imgeBtn.tag = 1000;
  72. [_imgeBtn setImage:[UIImage imageNamed:@"addComm"] forState:0];
  73. [_imgeBtn setTitle:YZMsg(@"上传图片") forState:0];
  74. [_imgeBtn setTitleColor:[UIColor grayColor] forState:0];
  75. _imgeBtn.titleLabel.font = [UIFont systemFontOfSize:10];
  76. _imgeBtn = [PublicObj setUpImgDownText:_imgeBtn];
  77. [self addSubview:_imgeBtn];
  78. _delBtn = [UIButton buttonWithType:0];
  79. _delBtn.frame = CGRectMake(imgWidth-25, 5, 20, 20);
  80. [_delBtn setBackgroundImage:[UIImage imageNamed:@"comm_del"] forState:0];
  81. [_delBtn addTarget:self action:@selector(delImageClick:) forControlEvents:UIControlEventTouchUpInside];
  82. _delBtn.hidden = YES;
  83. [_imgeBtn addSubview:_delBtn];
  84. self.deleteBtn = [UIButton buttonWithType:0];
  85. self.deleteBtn.frame = CGRectMake(_window_width-90, 0, 72, 26);
  86. self.deleteBtn.centerY = _imgeBtn.centerY;
  87. [self.deleteBtn setTitle:YZMsg(@"删除规格") forState:0];
  88. [self.deleteBtn setTitleColor:[UIColor grayColor] forState:0];
  89. self.deleteBtn.titleLabel.font = [UIFont systemFontOfSize:12];
  90. self.deleteBtn.layer.borderColor = [UIColor grayColor].CGColor;
  91. self.deleteBtn.layer.borderWidth = 1;
  92. self.deleteBtn.layer.masksToBounds = YES;
  93. self.deleteBtn.hidden = YES;
  94. [self.deleteBtn addTarget:self action:@selector(deleteStandardView:) forControlEvents:UIControlEventTouchUpInside];
  95. [self addSubview:self.deleteBtn];
  96. UILabel *line = [[UILabel alloc]init];
  97. line.frame = CGRectMake(12, _imgeBtn.bottom+5, _window_width-24, 1);
  98. line.backgroundColor =RGB(245, 245, 245);// RGB_COLOR(@"#302D41", 1);
  99. [self addSubview:line];
  100. }
  101. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  102. if (textField == _priceField) {
  103. if (string.length == 0) {
  104. return YES;
  105. }
  106. NSString *checkStr = [textField.text stringByReplacingCharactersInRange:range withString:string];
  107. NSString *regex = @"^\\-?([1-9]\\d*|0)(\\.\\d{0,2})?$";
  108. return [self isValid:checkStr withRegex:regex];
  109. }
  110. return YES;
  111. }
  112. - (BOOL) isValid:(NSString*)checkStr withRegex:(NSString*)regex {
  113. NSPredicate *predicte = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
  114. return [predicte evaluateWithObject:checkStr];
  115. }
  116. #pragma mark - UITextViewDelegate
  117. -(void)titleTextFieldDidChange:(UITextField *)textField
  118. {
  119. NSString *nameString;
  120. if (textField == _nameField) {
  121. nameString = _nameField.text;
  122. }
  123. NSString *lang = [[[UITextInputMode activeInputModes]firstObject] primaryLanguage]; // 键盘输入模式
  124. if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写
  125. UITextRange *selectedRange = [self.nameField markedTextRange];//获取高亮部分
  126. UITextPosition *position = [self.nameField positionFromPosition:selectedRange.start offset:0];
  127. //没有高亮选择的字,则对已输入的文字进行字数统计和限制
  128. if (!position) {
  129. if (nameString.length > 15) {
  130. self.nameField.text = [nameString substringToIndex:15];
  131. }
  132. }else{
  133. //有高亮选择的字符串,则暂不对文字进行统计和限制
  134. }
  135. }else{
  136. // 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
  137. if (nameString.length > 15) {
  138. self.nameField.text = [nameString substringToIndex:15];
  139. }
  140. }
  141. }
  142. -(BOOL)textFieldShouldReturn:(UITextField *)textField
  143. {
  144. [textField resignFirstResponder];
  145. return YES;
  146. }
  147. -(void)deleteStandardView:(UIButton *)sender{
  148. if (self.deleteEvent) {
  149. self.deleteEvent(self.index);
  150. }
  151. }
  152. //删除照片
  153. -(void)delImageClick:(UIButton *)sender{
  154. [self.imageArray removeObjectAtIndex:0];
  155. [_imgeBtn setImage:[UIImage imageNamed:@"addComm"] forState:0];
  156. [_imgeBtn setTitle:YZMsg(@"上传图片") forState:0];
  157. [_imgeBtn setBackgroundImage:nil forState:0];
  158. _delBtn.hidden = YES;
  159. }
  160. - (void)imageBtnClick:(UIButton *)sender{
  161. TZImagePickerController *imagePC = [[TZImagePickerController alloc]initWithMaxImagesCount:1-self.imageArray.count delegate:self];
  162. imagePC.preferredLanguage = [lagType isEqual:ZH_CN] ? @"zh-Hans":@"en";
  163. imagePC.modalPresentationStyle = 0;
  164. imagePC.showSelectBtn = YES;
  165. imagePC.allowCrop = NO;
  166. imagePC.allowPickingOriginalPhoto = NO;
  167. imagePC.oKButtonTitleColorNormal = Pink_Cor;
  168. imagePC.allowTakePicture = YES;
  169. imagePC.allowTakeVideo = NO;
  170. imagePC.allowPickingVideo = NO;
  171. imagePC.allowPickingMultipleVideo = NO;
  172. [[[YBBaseAppDelegate sharedAppDelegate] topViewController]presentViewController:imagePC animated:YES completion:nil];
  173. }
  174. - (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto{
  175. NSLog(@"------多选择图片--:%@",photos);
  176. [self.imageArray addObjectsFromArray:photos];
  177. [_imgeBtn setImage:nil forState:0];
  178. [_imgeBtn setTitle:nil forState:0];
  179. [_imgeBtn setBackgroundImage:self.imageArray[0] forState:0];
  180. _delBtn.hidden = NO;
  181. }
  182. @end