您的位置:首页 > 移动开发 > IOS开发

ios之自动拾取器

2016-05-04 10:23 513 查看
//

// ViewController.m

// 自动拾取器

//

// Created by 李江 on 16/5/4.

// Copyright © 2016年
李江. All rights reserved.

//

#import "ViewController.h"

#import "MJExtension.h"

#import "CityModel.h"

@interface
ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>

{

NSArray *dataArray;

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super
viewDidLoad];

UIPickerView *pickerView = [[UIPickerView
alloc]initWithFrame:CGRectMake(0,
736-300,
414, 300)];

pickerView.delegate =self;

pickerView.dataSource =
self;

pickerView.backgroundColor = [UIColor
grayColor];

NSString *path = [[NSBundle
mainBundle]pathForResource:@"city"
ofType:@"plist"];

dataArray = [NSArray
arrayWithContentsOfFile:path];

//把数据类型转化为CityModel

NSLog(@"%@",dataArray);

dataArray = [CityModel
mj_objectArrayWithKeyValuesArray:dataArray];

[self.view
addSubview:pickerView];

}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{

return
2;

}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

if (component ==
0) {

return
dataArray.count;

}

NSInteger selectRow = [pickerView
selectedRowInComponent:component];

CityModel *model =
dataArray[selectRow];

NSArray *cityArray = model.cities;

return cityArray.count;

}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row
forComponent:(NSInteger)component{

if (component ==
0) {

CityModel *model =
dataArray[row];

return model.state;

}

NSInteger selectedRow = [pickerView
selectedRowInComponent:0];

CityModel *model =
dataArray[selectedRow];

return model.cities[row];

}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
inComponent:(NSInteger)component{

if (component ==
0) {

[pickerView reloadAllComponents];

}

}

*******

CityModel.h里面代码如下

@property(nonatomic,copy)NSArray
*cities;

@property(nonatomic,copy)NSString
*state;

plist文件格式



运行效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: