#import "ViewController.h"
#import "CZProvinces.h"
@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property (nonatomic, strong) NSArray *
provinces;
@property (nonatomic, assign) NSInteger indexOfProvince;
@end
@implementation ViewController
//懒加载
- (NSArray *
)provinces
{
if (!
_provinces) {
NSArray *array =
[CZProvinces provinceList];
_provinces =
array;
} return _provinces;
}
- (
void)viewDidLoad {
[super viewDidLoad];
// [self provinces];
NSLog(
@"%@",self.provinces);
}
#pragma mark - 数据源方法
// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *
)pickerView
{
return 2;
}
// returns the # of rows in each component..
//设置每列有多少行
- (NSInteger)pickerView:(UIPickerView *
)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component ==
0) {
// 如果是第一列,则返回province的数目。
return self.provinces.count;
}
// 设置index来记载选定的省份。
CZProvinces *pro =
self.provinces[self.indexOfProvince];
return pro.cities.count;
}
#pragma mark - 设置显示内容
- (NSString *)pickerView:(UIPickerView *
)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component ==
0) {
// 如果是第一列
CZProvinces *pro =
self.provinces[row];
return pro.name;
}
CZProvinces *selectedProvince =
self.provinces[self.indexOfProvince];
return selectedProvince.cities[row];
}
#pragma mark - 选中行
- (
void) pickerView:(UIPickerView *
)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if (component ==
0) {
// 设置index为row。
self.indexOfProvince =
row;
[pickerView reloadComponent:1];
[pickerView selectRow:0 inComponent:
1 animated:YES];
}
}
@end
效果如下:
转载于:https://www.cnblogs.com/BJTUzhengli/p/5098468.html
相关资源:安卓三级联动省市联动多级联动相关-android多级菜单经典demo.zip