208 lines
6.6 KiB
Objective-C
208 lines
6.6 KiB
Objective-C
//
|
|
// XPMineUserInfoEditPickView.m
|
|
// xplan-ios
|
|
//
|
|
// Created by duoban on 2023/2/17.
|
|
//
|
|
|
|
#import "XPMineUserInfoEditPickView.h"
|
|
@interface XPMineUserInfoEditPickView()<UIPickerViewDelegate,UIPickerViewDataSource>
|
|
@property (strong, nonatomic) UIPickerView *pickerView;
|
|
|
|
@property (nonatomic,strong) UIView *bgView;
|
|
@property (nonatomic,strong) UIButton *cancelBtn;
|
|
@property (nonatomic,strong) UIButton *confirmBtn;
|
|
|
|
@end
|
|
@implementation XPMineUserInfoEditPickView
|
|
|
|
-(instancetype)initWithFrame:(CGRect)frame{
|
|
self = [super initWithFrame:frame];
|
|
if(self){
|
|
[self initSubViews];
|
|
[self initSubViewConstraints];
|
|
}
|
|
return self;
|
|
}
|
|
-(void)setDataArray:(NSMutableArray *)dataArray{
|
|
_dataArray = dataArray;
|
|
if(_dataArray.count == 0)return;
|
|
if(![_dataArray containsObject:_area]){
|
|
_area = _dataArray.firstObject;
|
|
}
|
|
[_pickerView reloadAllComponents];
|
|
if([_dataArray containsObject:_area]){
|
|
[_pickerView selectRow:[_dataArray indexOfObject:_area] inComponent:0 animated:YES];
|
|
}else{
|
|
[_pickerView selectRow:0 inComponent:0 animated:YES];
|
|
}
|
|
|
|
}
|
|
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
|
|
|
|
return 1;
|
|
}
|
|
|
|
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
|
|
|
|
return [_dataArray count];
|
|
}
|
|
|
|
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
|
|
|
|
return KScreenWidth;
|
|
}
|
|
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
|
|
return kGetScaleWidth(38);
|
|
}
|
|
|
|
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
|
|
[self changeSpearatorLineColor];
|
|
AreaPickerView *lab = (AreaPickerView *)view;
|
|
if (!lab) {
|
|
lab = [[AreaPickerView alloc]initWithFrame:CGRectMake(kGetScaleWidth(15),0, KScreenWidth - kGetScaleWidth(30), kGetScaleWidth(38))];
|
|
}
|
|
NSString *area = self.dataArray[row];
|
|
lab.titleLab.text = area;
|
|
if([area isEqualToString:self.area]){
|
|
lab.backgroundColor = UIColorFromRGB(0xF3F5FA);
|
|
lab.titleLab.textColor = [DJDKMIMOMColor inputTextColor];
|
|
}else{
|
|
lab.backgroundColor = [UIColor clearColor];
|
|
lab.titleLab.textColor = [DJDKMIMOMColor disableButtonTextColor];
|
|
}
|
|
return lab;
|
|
}
|
|
#pragma mark - 改变分割线的颜色
|
|
- (void)changeSpearatorLineColor {
|
|
|
|
for(UIView *speartorView in _pickerView.subviews) {
|
|
|
|
if (speartorView.frame.size.height < 80) {//找出当前的 View
|
|
|
|
|
|
speartorView.backgroundColor = [UIColor clearColor];
|
|
}else{
|
|
speartorView.backgroundColor = [UIColor clearColor];
|
|
}
|
|
}
|
|
}
|
|
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
|
|
if(row < self.dataArray.count){
|
|
self.area = self.dataArray[row];
|
|
[pickerView reloadAllComponents];
|
|
}
|
|
|
|
}
|
|
#pragma mark - Private Method
|
|
- (void)initSubViews {
|
|
self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
|
|
[self addSubview:self.bgView];
|
|
[self.bgView addSubview:self.cancelBtn];
|
|
[self.bgView addSubview:self.confirmBtn];
|
|
[self.bgView addSubview:self.pickerView];
|
|
}
|
|
- (void)initSubViewConstraints {
|
|
[self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.leading.trailing.bottom.equalTo(self).inset(kGetScaleWidth(0));
|
|
make.height.mas_equalTo(kGetScaleWidth(272));
|
|
}];
|
|
[self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.leading.mas_equalTo(kGetScaleWidth(15));
|
|
make.top.mas_equalTo(kGetScaleWidth(20));
|
|
make.height.mas_equalTo(kGetScaleWidth(20));
|
|
|
|
}];
|
|
[self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.mas_equalTo(kGetScaleWidth(20));
|
|
make.trailing.mas_equalTo(-kGetScaleWidth(15));
|
|
}];
|
|
[self.pickerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.mas_equalTo(kGetScaleWidth(74));
|
|
make.leading.trailing.bottom.equalTo(self.bgView).inset(kGetScaleWidth(0));
|
|
|
|
}];
|
|
}
|
|
-(void)cancelAction{
|
|
[self removeFromSuperview];
|
|
}
|
|
-(void)confirmAction{
|
|
[self removeFromSuperview];
|
|
if(self.delegate && [self.delegate respondsToSelector:@selector(didClickSureActionWithArea:)]){
|
|
[self.delegate didClickSureActionWithArea:self.area];
|
|
}
|
|
}
|
|
#pragma mark -懒加载
|
|
- (UIPickerView *)pickerView{
|
|
if (!_pickerView){
|
|
_pickerView = [[UIPickerView alloc]initWithFrame:CGRectZero];
|
|
if (@available(iOS 13.0, *)) {
|
|
_pickerView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
|
|
}
|
|
_pickerView.delegate = self;
|
|
_pickerView.dataSource = self;
|
|
}
|
|
return _pickerView;
|
|
}
|
|
- (UIButton *)cancelBtn{
|
|
if (!_cancelBtn){
|
|
_cancelBtn = [UIButton buttonInitWithText:YMLocalizedString(@"XPIncomeRecordGoldDetailsPickViewView0") font:kFontMedium(16) textColor:[DJDKMIMOMColor disableButtonTextColor] image:nil bgImage:nil];
|
|
[_cancelBtn addTarget:self action:@selector(cancelAction) forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
return _cancelBtn;
|
|
}
|
|
-(UIButton *)confirmBtn{
|
|
if (!_confirmBtn){
|
|
_confirmBtn = [UIButton buttonInitWithText:YMLocalizedString(@"XPIncomeRecordGoldDetailsPickViewView1") font:kFontMedium(16) textColor:[DJDKMIMOMColor inputTextColor] image:nil bgImage:nil];
|
|
[_confirmBtn addTarget:self action:@selector(confirmAction) forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
return _confirmBtn;
|
|
}
|
|
|
|
- (UIView *)bgView{
|
|
if (!_bgView){
|
|
_bgView = [UIView new];
|
|
_bgView.backgroundColor = [UIColor whiteColor];
|
|
[_bgView setCornerWithLeftTopCorner:kGetScaleWidth(18) rightTopCorner:kGetScaleWidth(18) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth, kGetScaleWidth(302))];
|
|
}
|
|
return _bgView;
|
|
}
|
|
@end
|
|
|
|
|
|
|
|
|
|
@implementation AreaPickerView
|
|
|
|
-(instancetype)initWithFrame:(CGRect)frame{
|
|
self = [super initWithFrame:frame];
|
|
if(self){
|
|
[self initSubViews];
|
|
[self initSubViewConstraints];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
#pragma mark - Private Method
|
|
- (void)initSubViews {
|
|
self.backgroundColor = UIColorFromRGB(0xF3F5FA);
|
|
[self addSubview:self.titleLab];
|
|
|
|
}
|
|
- (void)initSubViewConstraints {
|
|
[self.titleLab mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.edges.equalTo(self);
|
|
}];
|
|
|
|
}
|
|
#pragma mark -懒加载
|
|
- (UILabel *)titleLab{
|
|
if (!_titleLab){
|
|
_titleLab = [UILabel labelInitWithText:@"" font:kFontMedium(15) textColor:[DJDKMIMOMColor inputTextColor]];
|
|
_titleLab.textAlignment = NSTextAlignmentCenter;
|
|
}
|
|
return _titleLab;
|
|
}
|
|
|
|
@end
|