1、UIPickerView
UIPickerView是类似于comboBox的控件,只是在html中,comboBox是在控件底部下拉出值选项,而UIPickerView是直接在屏幕底部显示出滚动值选项,两者有相似点也有不同点,最关键的是comboBox是html中控件,而UIPickerView是iOS中的控件。
在使用UIPickerView时最关键的是添加“取消”、“确定”按钮。其他的类似于UITableView使用代理即可实现数据的获取。
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return _array.count;
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSString *string = _array[row];
return string;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
self.selectItem = _array[row];
}
2、UIToolBar
这是在UIPickerView上添加按钮时需要用到的控件,多的不说,直接贴代码。
NSMutableArray *barItems = [NSMutableArray array];
UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"\t取消" style:UIBarButtonItemStylePlain target:self action:@selector(toolBarCanelClick)];
[barItems addObject:cancelBtn];
// 中间弹簧,将取消、确定分隔在左右两端
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"确定\t" style:UIBarButtonItemStyleDone target:self action:@selector(finishBtnClick:)];
// 添加的顺序是从左至右,按顺序来的,并且相隔的距离都很近,不远,但添加弹簧后自适应最适合的位置
[barItems addObject:doneBtn];
pickerToolBar.items = barItems;
[self addSubview:pickerToolBar];
3、在使用UIPickerView与UIToolBar组合写一个类似comboBox的控件时,使用了封装的思想,将两个组件要实现的功能用方法代替,细节都直接封装在方法中,让控件尽可能的脱离项目而可独立存在。
// 数据源
@property (nonatomic, strong) NSArray *array;
// 实例方法
+ (instancetype)pickerView;
+ (void)show;
+ (void)hide;