UIpickerview顾名思义,是一个用来单选的view,功能类似于html里面的select框。
有几个关键性的需要注意的地方:
1.如何给UIpickerview赋值。
UIpickerview里面的选项,其实是一个数组类型的数据,想把这个数组的值赋给UIpickerview的话,需要实现一个delegat:UIPickerViewDelegate和一个datasource:UIPickerViewDataSource
然后实装以下三个方法:
- // 返回的数字代表这个controller里有几个UIpickview
- -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
- return 1;
- }
- // pickerArray是给pickerview赋值的那个数组,如果有多个pickerview的话,在里面加上判断即可,比如:if (pickerView == XXXXpickerview) {XXXXXXX} else if (pickerView == XXXXpickerview) {XXXXXXXXXX}
- -(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
- return [pickerArray count];
- }
- // pickerArray是给pickerview赋值的那个数组,多个pickerview的情况按照上面的方法进行处理
- -(NSString*) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
- return [pickerArray objectAtIndex:row];
- }
实装完方法后,要在viewdidload里面设好delegate和datasource:
- xxxxxPicker.delegate = self;
- xxxxxPicker.dataSource = self;
2.指定pickerview选择某值和获取pickerview选择的值
指定pickerview选择某值:
[xxxxPicker selectRow:要选择的值在赋值数组里的下标 inComponent:0 animated:NO];
或
[xxxxPicker selectRow:[pickerArray indexOfObject:要选择的值] inComponent:0 animated:NO];
获取pickerview选择的值:
[pickerArray objectAtIndex:[self.xxxxPickerselectedRowInComponent:0]];
实际上是取得这个pickerview选择的下标,再通过下标取那个赋值数组里取得值。