// // WTMeCell.m // WTBaiSiBuDeJie // // Created by yuklng on 2017/1/11. // Copyright © 2017年 yuklng. All rights reserved. // #import "WTMeCell.h" #import "UIView+Extension.h" #define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a] #define RGB(r,g,b) RGBA(r,g,b,1.0f) @interface WTMeCell () @end @implementation WTMeCell{ UIView* Main_View; //容器 UIView* _InputView; //二级容器 UILabel* _TypeLable; //标签label NSInteger TextFieldLength; } - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { self.textLabel.textColor = [UIColor darkGrayColor]; // self.textLabel.font = [UIFont systemFontOfSize:14]; // self.regular_text = @"^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$"; self.regular_text = @""; _type_text = @"WTMeCell"; _cell_Identifier = reuseIdentifier; TextFieldLength = 11; [self createItems]; } return self; } #pragma mark 视图构建方法  -(void)createItems { if(!Main_View){ [self.contentView addSubview:({ UIView* Cell_View =[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; Cell_View.backgroundColor = [UIColor whiteColor]; Main_View =Cell_View; Cell_View; })]; } [Main_View addSubview:[self createInputView:@""]]; } -(UIView*)createInputView:(NSString*)type_text{ NSInteger view_height =Main_View.height; NSInteger view_width =Main_View.width; NSInteger view_x =0; NSInteger view_y =0; //subscript*view_height UIView* Input_view =[[UIView alloc] init]; Input_view.x =view_x; Input_view.y =view_y; Input_view.width =view_width; Input_view.height =view_height; _InputView =Input_view; [Input_view addSubview:({ UILabel* Input_type_view =[[UILabel alloc] init]; Input_type_view.x =10; Input_type_view.y =0; Input_type_view.width =Input_view.width/3; Input_type_view.height =Input_view.height; Input_type_view.textAlignment =NSTextAlignmentLeft; Input_type_view.text =type_text; UIFont* newFont =[UIFont preferredFontForTextStyle:UIFontTextStyleBody]; UIFontDescriptor* ctfFont =newFont.fontDescriptor; NSNumber* fontString =[ctfFont objectForKey:@"NSFontSizeAttribute"]; // NSLog(@"当前使用的字体是%@",fontString); Input_type_view.font =[UIFont systemFontOfSize:fontString.floatValue]; _TypeLable =Input_type_view; Input_type_view; })]; [Input_view addSubview:({ UITextField* Input_type_view =[[UITextField alloc] init]; Input_type_view.x =Input_view.width/3; Input_type_view.y =0; Input_type_view.width =Input_view.width; Input_type_view.height =Input_view.height; Input_type_view.placeholder =@""; Input_type_view.tag =50; Input_type_view.delegate =self; UIFont* newFont =[UIFont preferredFontForTextStyle:UIFontTextStyleBody]; UIFontDescriptor* ctfFont =newFont.fontDescriptor; NSNumber* fontString =[ctfFont objectForKey:@"NSFontSizeAttribute"]; // NSLog(@"当前使用的字体是%@",fontString); Input_type_view.font =[UIFont systemFontOfSize:fontString.floatValue-2]; _InputText =Input_type_view; Input_type_view; })]; return Input_view; } #pragma mark 更新视图 -(void)upDateInputView{ NSInteger view_height =Main_View.height; NSInteger view_width =Main_View.width; NSInteger view_x =0; NSInteger view_y =0; _InputView.x =view_x; _InputView.y =view_y; _InputView.width =view_width; _InputView.height =view_height; _TypeLable.height =_InputView.height; _InputText.height =_InputView.height; } -(void)setTitle:(NSString *)title cellText:(NSString*)cell_text placeholder:(NSString*)placeholder{ _TypeLable.text = title; _InputText.text = cell_text; _InputText.placeholder =placeholder; } #pragma mark UITextFieldDelegate - (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string{ NSMutableString* now_text =[NSMutableString stringWithFormat:@"%@", textField.text]; if (range.length>0) { [now_text deleteCharactersInRange:range]; }else{ [now_text insertString:string atIndex:range.location]; } if (textField.text.length>=TextFieldLength && ![string isEqualToString:@""]) { return NO; } _now_text =now_text; // NSLog(@"length :%lu %@ range-location :%lu range-length :%lu",now_text.length,now_text,(unsigned long)range.location,(unsigned long)range.length); if ([self validateNumber:now_text]||[self.regular_text isEqualToString:@""]) { _isBool =YES; }else{ _isBool =NO; } if (self.block) { self.block (nil,self); } return YES; } -(void)layoutSubviews { [super layoutSubviews]; NSInteger margin =10; Main_View.x =margin; Main_View.y =0; Main_View.width =self.contentView.frame.size.width-20; Main_View.height =self.contentView.frame.size.height; [self upDateInputView]; } #pragma mark 正则表达式判断 -(BOOL)validateNumber:(NSString *)text { NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",self.regular_text]; return [numberPre evaluateWithObject:text]; } #pragma mark set -(void)setTextFieldLength:(NSInteger)length{ TextFieldLength =length; } @end