pickerView 设置省市联动(原)

来源:互联网 发布:php视频教程下载 编辑:程序博客网 时间:2024/06/09 17:25

个人使用pickerView心得

数据源来自plist文件

-(void)initPlistArray {    NSString *path = [[NSBundle mainBundle] pathForResource:@"city2" ofType:@"plist"];    self.pArrs = [NSArray arrayWithContentsOfFile:path];    for (NSDictionary *dict  in self.pArrs) {        NSString *provinceName = dict[@"state"];        [self.<span style="background-color: rgb(255, 255, 0);">CitiesArray</span> addObject:provinceName];  //Component 0 数据源        self.tempArrs = dict[@"cities"];    }    //获取compont1默认数据 (安徽省)    NSArray *arr = self.pArrs[0][@"cities"];    for (NSDictionary *dictt in arr) {        [self.<span style="background-color: rgb(255, 255, 51);">citiesArrR</span> addObject:dictt[@"city"]];  // Component 1 默认数据源    }}


代理方法如下:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {    NSLog(@"didSelectRow ______");    if (component == 0) {        NSLog(@"component province did selected");//        NSLog(@"???? %@",self.CitiesArray);       self.provinceCode = self.pArrs[row][@"code"];        self.provinceName = self.pArrs[row][@"state"];<span style="background-color: rgb(102, 255, 153);">        self.tempArrs = self.pArrs[row][@"cities"];        [self.citiesArrR removeAllObjects];        for (NSDictionary *dic in self.tempArrs) {            [self.citiesArrR addObject:dic[@"city"]];        }</span>        //        NSLog(@"num 1 ??%@",self.citiesArrR[0]);//        NSLog(@"self.citiesArrR is %@",self.citiesArrR);//        [pickerView selectedRowInComponent:1];<span style="background-color: rgb(102, 255, 255);">        [pickerView selectRow:0 inComponent:1 animated:YES];        [pickerView reloadComponent:1];</span>    }else {//        NSLog(@"%ld",row);//        NSLog(@"tempArr is %@",self.tempArrs);//        NSLog(@"???? ++ %@",self.tempArrs[row][@"city"]);        self.cityCode = self.tempArrs[row][@"code"];        self.cityName = self.tempArrs[row][@"city"];    }}-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {    if (component == 0) {        return self.CitiesArray.count;    }else {        return self.citiesArrR.count;    }}-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component {    return  65;}-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {    return 2;}-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {    if (component == 0) {        return self.CitiesArray[row];    }else {        return [self.citiesArrR objectAtIndex:row];    }}


0 0