UIPickerView的简单应用——省份/城市选择的实现
来源:互联网 发布:linux查看内存型号 编辑:程序博客网 时间:2024/05/23 11:30
UIPickerView的简单应用——省份/城市选择的实现
实现效果如图,左边为省份选择,右边选择省份对应的城市
数据plist形式如图
工程下载地址:工程下载
https://github.com/Nongchaozhe/UIPickerView-Province-city
UIPickerView的实现重要还是两个代理协议中方法的实现
- (void)viewDidLoad { [super viewDidLoad]; [self loadData]; _pickView = [[UIPickerView alloc] initWithFrame:CGRectMake(50, 100, 300, 300)]; _pickView.dataSource = self; _pickView.delegate = self; [self.view addSubview:_pickView];}#pragma mark - loadData- (void)loadData { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForResource:@"city" ofType:@"plist"]; _dataArray = [NSMutableArray arrayWithContentsOfFile:path]; _citiesArray = _dataArray[0][@"cities"];}
代理方法的实现:
#pragma mark - dataSource//注意这里是几列的意思。我刚刚开始学得时候也在这里出错,没理解- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 2;}- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { if (component == 0) { return _dataArray.count; }else { return _citiesArray.count; }}
#pragma mark - delegate- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component { return 150;}- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component { return 60;}//返回每行显示的内容- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { if (component == 0) { return [NSString stringWithFormat:@"%@",_dataArray[row][@"state"]]; }else { return [NSString stringWithFormat:@"%@",_citiesArray[row]]; }}//当改变省份时,重新加载第2列的数据,部分加载- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { if (component == 0) { _citiesArray = _dataArray[row][@"cities"]; [_pickView reloadComponent:1]; }}//补充说明~有时候我们需要显示的是view,若实现了一下方法,那么 @selector(pickerView:attributedTitleForRow:forComponent:)就不会调用了,因此如果选择器既有文字又有图片,可以选择文字区域返回UILabel。(我的解决方案~可能有更好的~)//- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
1 0
- UIPickerView的简单应用——省份/城市选择的实现
- IOS UIPickerView的简单使用 省份+城市 联动
- js实现省份、城市的级联选择
- 使用UIPickerView实现简单的城市选择器
- Android 实现省份城市的选择,并获取城市编号
- Android 实现省份城市的选择,并获取城市编号
- 省市二级联动 通过省份选择城市 JS的简单应用 二级下拉列表
- 简单的,省份和城市选择,非ajax版
- js的二级联动实现省份城市的选择
- 全国所有的省份及城市选择
- jQuery技术——根据省份的选择动态加载相应城市
- 如何实现下拉选择省份后,后续单元格能选择对应的城市和县区
- (转)IOS之简单选择器UIPickerView(省份+城市)
- IOS之简单选择器UIPickerView(省份+城市)
- 省份及城市的下拉框实现
- 用Flex实现级联,实现选择省份,显示该省的所有城市
- js中的数组应用小案例——省份城市的二级联动
- ios-day10-03(省份和城市联动。UIPickerView的使用、使用UIPickerView的reloadComponent:方法刷新某一列)
- Day8.05
- Spring缓存注解@Cache使用
- Sphinx和Coreseek:强大的开源全文检索引擎
- Swift 表达正则表达式-手机-邮箱-密码
- 通过父元素和子元素的class类,获取该同类子元素的数组
- UIPickerView的简单应用——省份/城市选择的实现
- WWDC15 iOS游戏开发3个新框架全解
- poj 3267 The Cow Lexicon dp
- IOS基础002自定义控件
- 晶振不起振的一种原因
- acmoj 算路程 水水
- autoresizingMask属性
- java之yield(),sleep(),wait()区别详解-备忘笔记
- Chrome“无法添加来自此网站的应用”的解决办法