agiapp / BRPickerView

BRPickerView 封装的是iOS中常用的选择器组件,主要包括:日期选择器(支持年月日、年月等15种日期样式选择,支持设置星期、至今等)、地址选择器(支持省市区、省市、省三种地区选择)、自定义字符串选择器(支持单列、多列、二级联动、三级联动选择)。支持自定义主题样式,适配深色模式,支持将选择器组件添加到指定容器视图。
https://github.com/agiapp/BRPickerView
MIT License
2.57k stars 446 forks source link

我又帮你优化了一个功能。 #172

Closed 295060456 closed 4 years ago

295060456 commented 4 years ago

1、在BRBaseView里面加一个方法: -(void)doneBtnCanBeClick:(BOOL)click{ self.doneBtn.userInteractionEnabled = click; self.doneBtn.alpha = click ? 1 : 0.4; }

在doneBtn 初始化里面加上 //最开始是不能够被点击的 _doneBtn.userInteractionEnabled = NO; _doneBtn.alpha = 0.4;

2、在 AddressPickerView、DatePickerView、StringPickerView里面都加上: show方法里见面加[self doneBtnCanBeClick:NO]; 3、 AddressPickerView、DatePickerView: // 滚动完成后,执行block回调 if (self.resultBlock) { [self doneBtnCanBeClick:YES]; self.resultBlock(self.mSelectDate, self.mSelectValue); }

StringPickerView: if (self.pickerMode == BRStringPickerComponentSingle) { if (self.resultModelBlock) { [self doneBtnCanBeClick:YES]; self.resultModelBlock([self getResultModel]); } } else if (self.pickerMode == BRStringPickerComponentMulti) { if (self.resultModelArrayBlock) { [self doneBtnCanBeClick:YES]; self.resultModelArrayBlock([self getResultModelArr]); } }

agiapp commented 4 years ago

考虑到库的通用性和灵活性,这类需求都可以通过使用 addPickerToView 方法自定义弹框视图来实现,自定义的取消按钮和确定按钮,自己可以灵活的去控制