UIPickerView
来源:互联网 发布:众测平台数据安全 编辑:程序博客网 时间:2024/06/16 07:12
UIPickerView相关
- (void)viewDidLoad { [super viewDidLoad]; //加载资源文件 [self loadResourceFile]; //创建视图 [self initSubViews];}
#pragma mark - 加载资源文件-(void)loadResourceFile{ NSBundle *bundle = [NSBundle mainBundle]; NSString *plistPath = [bundle pathForResource:@"provinces_cities" ofType:@"plist"]; //获取属性列表文件中的全部数据 NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath]; self.pickerData = dict; //省份名数据 self.pickerProvincesData = [self.pickerData allKeys]; //默认取出第一个省的所有市的数据 NSString *seletedProvince = [self.pickerProvincesData objectAtIndex:0]; self.pickerCitiesData = [self.pickerData objectForKey:seletedProvince];}
#pragma mark - 创建视图-(void)initSubViews{ CGRect screen = [[UIScreen mainScreen] bounds]; /// 1.选择器 CGFloat pickerViewWidth = 320; CGFloat pickerViewHeight = 162; self.pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, pickerViewWidth, pickerViewHeight)]; //设置self为委托对象、self为数据源对象 self.pickerView.dataSource = self; self.pickerView.delegate = self; [self.view addSubview:self.pickerView]; /// 2.添加标签 CGFloat labelWidth = 200; CGFloat labelHeight = 21; CGFloat labelTopView = 273; self.label = [[UILabel alloc] initWithFrame:CGRectMake((screen.size.width - labelWidth)/2 , labelTopView, labelWidth, labelHeight)]; self.label.text = @"Label"; //字体左右居中 self.label.textAlignment = NSTextAlignmentCenter; [self.view addSubview:self.label]; /// 3.Button按钮 UIButton* button= [UIButton buttonWithType:UIButtonTypeSystem]; [button setTitle:@"Button" forState:UIControlStateNormal]; CGFloat buttonWidth = 46; CGFloat buttonHeight = 30; CGFloat buttonTopView = 374; button.frame = CGRectMake((screen.size.width - buttonWidth)/2 , buttonTopView, buttonWidth, buttonHeight); //指定事件处理方法 [button addTarget:self action:@selector(onclick:) forControlEvents: UIControlEventTouchUpInside]; [self.view addSubview:button];}
#pragma mark - 按钮的点击事件- (void)onclick:(id)sender { NSInteger row1 = [self.pickerView selectedRowInComponent:0]; NSInteger row2 = [self.pickerView selectedRowInComponent:1]; NSString *selected1 = [self.pickerProvincesData objectAtIndex:row1]; NSString *selected2 = [self.pickerCitiesData objectAtIndex:row2]; NSString *title = [[NSString alloc] initWithFormat:@"%@,%@市", selected1,selected2]; self.label.text = title; }
#pragma mark --实现协议UIPickerViewDataSource方法//轮播器个数- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 2;}//每个轮播器的行数- (NSInteger)pickerView:(UIPickerView *)pickerViewnumberOfRowsInComponent:(NSInteger)component { if (component == 0) {//省份个数 return [self.pickerProvincesData count]; } else {//市的个数 return [self.pickerCitiesData count]; } }
#pragma mark --实现协议UIPickerViewDelegate方法//选择器组件的显示相关-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { if (component == 0) {//选择省份名 return [self.pickerProvincesData objectAtIndex:row]; } else {//选择市名 return [self.pickerCitiesData objectAtIndex:row]; }}//选择器组件的选择相关(显示发生变化就会调用此方法)- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { if (component == 0) { NSString *seletedProvince = [self.pickerProvincesData objectAtIndex:row]; NSArray *array = [self.pickerData objectForKey:seletedProvince]; self.pickerCitiesData = array; //刷新组件内容 [self.pickerView reloadComponent:1]; }}
0 0
- UIPickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIpickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIPickerView
- UIpickerview
- UIPickerView
- UIpickerView
- UIPickerView
- 含有中文名称的图片资源无法访问
- 机器学习数学基础学习总结(一)
- 493. Reverse Pairs
- android view宽高确定
- TensorFlow学习笔记--mnist可视化版本
- UIPickerView
- Java变量类型间的相互转换
- 用 Lua 实现一个微型虚拟机-基本篇
- 【转】CentOS添加环境变量
- 十五、Hive 安装部署及测试
- stringDemo
- 【HDU2222】Keywords Search
- Android 如何将文件写入SD卡
- Android权限校验过程