ZKFieldWithTitle
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
// // ZKFieldWithTitle.h // WaterProofer // // Created by ios on 2019/9/8. // Copyright © 2019年 WaterProofer. All rights reserved. // #import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface ZKFieldWithTitle : UIView @property(nonatomic,strong)UILabel *keyTitle; @property(nonatomic,strong)UITextField *inputField; @property(nonatomic,strong)UIButton *rightIcon; @property(nonatomic,strong)UIImageView *downLine; @property (nonatomic,copy)NSString* rightSelectIcon; @property (nonatomic,copy)NSString* rightDefaultIcon; @property (nonatomic,assign)BOOL isNeedClick;//是否需要点击事件 @property (nonatomic,copy)void(^selectBlock)(void); +(instancetype)customerView; @end NS_ASSUME_NONNULL_END
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
// // ZKFieldWithTitle.m // WaterProofer // // Created by ios on 2019/9/8. // Copyright © 2019年 WaterProofer. All rights reserved. // #import "ZKFieldWithTitle.h" // 获取RGB颜色 #define ZKRGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a] #define ZKRGB(r,g,b) RGBA(r,g,b,1.0f) #define ZKPingFangFont_(F) [UIFont fontWithName:@"PingFang SC" size:F] // 弱引用 #define ZKWeakSelf __weak typeof(self) weakSelf = self; @implementation ZKFieldWithTitle -(instancetype)init{ if (self = [super init]){ ZKWeakSelf self.userInteractionEnabled = YES; self.backgroundColor = [UIColor whiteColor]; self.rightIcon.hidden = YES; _keyTitle = [[UILabel alloc] init]; [_keyTitle setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal]; _keyTitle.textColor = ZKRGB(51, 51, 51); _keyTitle.font = ZKPingFangFont_(15); [self addSubview:_keyTitle]; [_keyTitle mas_makeConstraints:^(MASConstraintMaker *make) { make.left.offset(15); make.centerY.mas_equalTo(weakSelf); }]; _rightIcon = [UIButton buttonWithType:UIButtonTypeCustom]; [_rightIcon setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal]; [self addSubview:_rightIcon]; [_rightIcon mas_makeConstraints:^(MASConstraintMaker *make) { make.right.offset(-15); make.centerY.mas_equalTo(weakSelf); }]; _inputField = [[UITextField alloc] init]; _inputField.textColor = ZKRGB(51, 51, 51); _inputField.font = ZKPingFangFont_(15); [self addSubview:_inputField]; [_inputField mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.keyTitle.mas_right).offset(15); make.right.equalTo(weakSelf.rightIcon.mas_left).offset(-15); make.centerY.mas_equalTo(weakSelf); }]; } return self; } +(instancetype)customerView { ZKFieldWithTitle* fieldAndTitle = [[ZKFieldWithTitle alloc] init]; return fieldAndTitle; } -(void)setRightSelectIcon:(NSString *)rightSelectIcon{ _rightSelectIcon = rightSelectIcon; [self.rightIcon setImage:[UIImage imageNamed:_rightSelectIcon] forState:UIControlStateSelected]; } -(void)setRightDefaultIcon:(NSString *)rightDefaultIcon{ _rightDefaultIcon = rightDefaultIcon; [self.rightIcon setImage:[UIImage imageNamed:_rightDefaultIcon] forState:UIControlStateNormal]; } -(void)setIsNeedClick:(BOOL)isNeedClick{ _isNeedClick = isNeedClick; if (_isNeedClick) { self.rightIcon.hidden = NO; self.inputField.enabled = NO; UITapGestureRecognizer *tapClick=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap_Click)]; [self addGestureRecognizer:tapClick]; } } -(void)tap_Click{ if (self.selectBlock){ self.rightIcon.selected=!self.rightIcon.selected; self.selectBlock(); } } @end
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
_selectCity = [ZKFieldWithTitle customerView]; _selectCity.keyTitle.text = @"所在区域"; _selectCity.inputField.placeholder = @"请选择省市区"; _selectCity.isNeedClick = YES;//是否需要点击事件 _selectCity.rightDefaultIcon = @"xiala"; _selectCity.rightSelectIcon = @"xiala"; _selectCity.selectBlock = ^{ //NSLog(@"选择省市区"); [weakSelf hideAllKeyBoard];//隐藏键盘 [weakSelf.pickView showInView:weakSelf.view];//推出省市区选择器 }; [_cityView addSubview:_selectCity]; [_selectCity mas_makeConstraints:^(MASConstraintMaker *make) { make.top.left.right.offset(0); make.height.equalTo(weakSelf.cityView.mas_height).multipliedBy(0.5);//multipliedBy 宽高比 }]; _detailAddress = [ZKFieldWithTitle customerView]; _detailAddress.keyTitle.text = @"详情地址"; _detailAddress.inputField.placeholder = @"请输入详情地址"; [_cityView addSubview:_detailAddress]; [_detailAddress mas_makeConstraints:^(MASConstraintMaker *make) { make.bottom.left.right.offset(0); make.height.equalTo(weakSelf.cityView.mas_height).multipliedBy(0.5);//multipliedBy 宽高比 }]; #pragma - mark - 隐藏键盘 - (void)hideAllKeyBoard { [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];//隐藏键盘 }