效果图:
#import "RootViewController.h"
@interface RootViewController ()
@end
@implementation RootViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {// Custom initialization }
return self;
}
- (void)viewDidLoad
{[super viewDidLoad];
// Do any additional setup after loading the view.
// 初始化身份数据
NSMutableArray *tempArray1 = [NSMutableArray arrayWithObjects:@"北京", @"河北", @"天津", nil];
self.citysArray = tempArray1;
// 初始化城市数据 @"朝阳区", @"海淀区", @"西城区", @"东城区", "昌平区", nil
NSMutableArray *tempArray2 = [NSMutableArray arrayWithObjects:@"朝阳区", @"海淀区", @"西城区", @"东城区", @"昌平区", nil];
self.districtesArray = tempArray2;
// 初始化UIPickerView
UIPickerView *onePickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 216, 320, 216)];
// 设置委托对象
onePickerView.delegate = self;
onePickerView.showsSelectionIndicator = YES; // 设置选中的一行高亮显示
// 设置数据源对象
onePickerView.dataSource = self;
self.pickerView = onePickerView;
[onePickerView release], onePickerView = nil;
[self.view addSubview:_pickerView];   
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - 重写---滚动滚轮调用的方法
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
if (component == 0) {
switch (row) {
case 0:
self.districtesArray = [NSMutableArray arrayWithObjects:@"朝阳区", @"海淀区", @"西城区", @"东城区", @"昌平区", nil];
break;
case 1:
self.districtesArray = [NSMutableArray arrayWithObjects:@"保定", @"沧州", @"邢台", @"唐山", nil];
break;
case 2:
self.districtesArray = [NSMutableArray arrayWithObjects:@"红桥区", @"北辰区", @"西青区", @"武清区", @"呵呵", nil];
break;
default:
break;
}
// 修改完数据之后重新加载数据
[pickerView reloadComponent:1];
// 设置默认选中的为第二个滚轮的第一个选项
[pickerView selectRow:0 inComponent:1 animated:YES];
} }
#pragma mark - 重写---协议中的方法
#pragma mark 设置总共有几个滚轮 返回值是几既有机房
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 2;
}
#pragma mark 这种相同的数据源返回相同的数据源
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if (component == 0) { // 判断是左面第一个滚轮
return self.citysArray.count;
} else {
return self.districtesArray.count;
} }
#pragma mark - 重写---获取数据源显示在UIPickerView上
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (component == 0) {
return [self.citysArray objectAtIndex:row];
} else {
return [self.districtesArray objectAtIndex:row];     }
}
#pragma mark - 重写---dealloc方法
- (void)dealloc {
[_pickerView release], _pickerView = nil;
[super dealloc];
}
@end

转载于:https://www.cnblogs.com/sharkHZ/p/4984196.html

进击的UI---------------UIPickerView相关推荐

  1. iOS UIPickerView

    In this tutorial, we'll be discussing UIPickerView component in our iOS Application. 在本教程中,我们将讨论iOS应 ...

  2. 【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )

    转载注明出处 : http://blog.csdn.net/shulianghan/article/details/50348982 一. 日期选择器 (UIDatePicker) UIDatePic ...

  3. RxSwift之UI控件UIPickerView扩展的使用

    一.基本用法 ① 单列的情况 基本用法 示例代码: var pickerView : UIPickerView!// 最简单的pickerView适配器(显示普通文本) private let str ...

  4. Objective-c——UI进阶开发第一天(UIPickerView和UIDatePicker)

    一.知识点 1.介绍数据选择控件UIPickerView和日期选择控件UIDatePicker控件 * UIPickerView的案例 * 点餐系统 * 城市选择 * 国旗选择 * UIDatePic ...

  5. UI组件-UIPickerView

    1111 转载于:https://www.cnblogs.com/hwangcheng/articles/8326097.html

  6. iOS超全开源框架、项目和学习资料汇总(1)UI篇

    上下拉刷新控件 **1. ** MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.(推荐) ...

  7. iOS超全开源框架、项目和学习资料汇总:UI篇

    2017-01-30 iOS巍 CocoaChina 原文 上下拉刷新控件 1. MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉 ...

  8. (转) iPhone UI 开发的几点建议

    原文地址:http://blog.csdn.net/lbj05/archive/2011/04/01/6295778.aspx ==================================== ...

  9. UIPickerView基本使用

    UIPickerView是很常用的一个UI控件,在各种购物平台选择地址时候都是必备的,下面我们来说一下具体的使用 首先UIPickerView的创建,与多数控件一样,分配内存并设置位置尺寸. 重要的的 ...

  10. 自定义iOS UIPickerView

    In this tutorial, we'll be customising the UIPickerView properties in our iOS Application. In the pr ...

最新文章

  1. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略
  2. Math.abs为Integer.Min_VALUE返回错误的值
  3. UNP学习 高级I/O函数
  4. linux课堂笔记(3)
  5. 安装FFmpeg后,发现没有生成ffplay的解决办法
  6. graph-easy使用简介
  7. 牛客 小a与星际探索 bfs
  8. 区块链 平行链 侧链 区别
  9. c语言 adt实验报告,Android实验报告
  10. Linux (Ubuntu): bash: tailf: command not found
  11. JavaScript统计图表插件 Echarts
  12. 当代大学生结课后的一周
  13. 年薪达 35 万元,杭州成为薪酬最高的城市,北上、重庆通勤时间最久,揭晓 2022 年最具潜力的软件名城!
  14. HCIE笔记-汇聚层和接入层的基础知识
  15. 塔望食业洞察|植物肉行业发展趋势 品牌竞争格局及未来发展
  16. 机器学习如何破译早已消亡的古老语言?
  17. 历史演变有助于理解css布局的本质
  18. jquery 添加插入元素技巧前面和后面
  19. 文献:《基于博弈论的多微电网系统交易模式研究》Matlab完全复现
  20. npm常用命令详细教学

热门文章

  1. python encoding报错_python用requests递归查询页面 报错 ChunkedEncodingError
  2. mysql 5.7配置多线程复制,MySQL5.7复制功能实战,基于事务的复制,多源复制和多线程复制配置...
  3. tts代表_Text-to-Speech (TTS) Synthesis语音合成----控制语言合成
  4. go 函数参数nil_深入理解 Go-Defer的机制
  5. 无法接收 agent 发出的检测信号_BR-PST系列基桩非金属超声波检测仪的系统延时来源及测试校正方法...
  6. C++知识点53——虚继承
  7. C++知识点15——使用C++标准库(IO流)
  8. 苹果airpods android,苹果AirPodsPro搭配Android手机实测:支持功能不够完整,购买前要认真考虑...
  9. Ubuntu Nginx uwsgi django 初试
  10. 被IP代理网站屏蔽了,真是跪了