//
// ViewController.m
// MyPickerView
//
// Created by sunlihuo on 15/5/18.
// Copyright (c) 2015年 sunlihuo. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) UIPickerView *pickerView;//选取器视图
//@property (strong, nonatomic) NSArray *listData;//选取器的数据源
@property (strong, nonatomic) NSArray *provinces;//省份数据源数组
@property (strong, nonatomic) NSArray *cities;//城市数据源数组
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//self.listData = @[@"row1", @"row2", @"row3", @"row4", @"row5"];
[self onCreate];
}
- (void)onCreate{
NSString *filePath = [[NSBundle mainBundle]pathForResource:@"area" ofType:@"plist"];
self.provinces = [[NSArray alloc]initWithContentsOfFile:filePath];
self.cities = self.provinces[0][@"Cities"];
//NSLog(@"provinces is %@", self.provinces);
//NSLog(@"cities is %@", self.cities);
self.pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 318, 320, 162)];
self.pickerView.dataSource = self;
self.pickerView.delegate = self;
[self.view addSubview:self.pickerView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
#pragma mark 选取器视图的数据类方法
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
//此数据源方法指定选取器有几个表盘
return 2;
}
#pragma mark 选取器视图的委托方法
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
//此数据源方法指定选取器每个表盘有几行数据
//NSLog(@"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ is %zi", component);
NSInteger cou = 0;
switch (component) {
case 0:
cou = self.provinces.count;
break;
case 1:
cou = self.cities.count;
break;
default:
break;
}
return cou;
}
#pragma mark 此数据源方法指定选取器如何展示数据(此方法会被调用多次)
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
NSString *str = nil;
switch (component) {
case 0:
str = self.provinces[row][@"State"];
break;
case 1:
str = self.cities[row][@"city"];
break;
default:
break;
}
return str;
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
switch (component) {
case 0:
self.cities = self.provinces[row][@"Cities"];
//刷新UI
[pickerView selectRow:0 inComponent:1 animated:YES];
[pickerView reloadComponent:1];
break;
default:
break;
}
}
@end
UIPickerView
最新推荐文章于 2023-11-29 21:06:11 发布