类的介绍
UIPickerView类实现了对象,称为选择器视图,使用一个转轮或老虎机的比喻来显示一个或多个值集。用户通过旋转轮子来选择值,以便将所需的值与一个选择指示器对应。
它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活。
相关属性方法
属性:
1.获取UIPickerView组件的数量
@property(nonatomic, readonly) NSInteger numberOfComponents
2.获取某个指定组件的行数
- numberOfRowsInComponent:
3.获取某个指定组件的行的大小。
- rowSizeForComponent:
方法:
1.重新加载所有组件
- reloadAllComponents
2 重新加载某个特定的组件。
- reloadComponent:
3、在picker view指定的一个组件中,选择一行
- selectRow:inComponent:animated:
4、返回指定组件指定行的序列
- selectedRowInComponent:
5、返回给定组件,给定行的视图
- viewForRow:forComponent:
6delegate 属性
7dataSource 属性
8显示选择指示器
showsSelectionIndicator Property
相关例子
-(void)initPickerView{
UIPickerView *pickView = [[UIPickerView alloc]initWithFrame:CGRectMake(20, 100, self.view.bounds.size.width-40, 100)];
pickView.delegate = self;
pickView.dataSource = self;
[self.view addSubview:pickView];
}
其中UIPickerViewDataSource必须实现的两个代理方法为:
#pragma remark -UIPickerViewDataSource
// 设置显示列数为多少.这里设置只显示一行
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
// 设置每个组件(列)的行为多少,这里设置都为10行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return 10;
}
#pragma remark -UIPickerViewDelegate
// 设置每个组件的宽度为多少。
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{
return 140.0;
}
//设置每个组件行高为多少
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 40.0;
}
- (nullable NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [NSString stringWithFormat:@"test %ld",(long)row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
NSLog(@"用户选择了第%ld行",(long)row);
}