UIPickerView简单应用
下面是一些效果图



下面是代码。有些枯燥 , 其实并不难 。
#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIPickerViewDelegate,UIPickerViewDataSource> @property(strong,nonatomic) UIPickerView *picker;
@property(strong,nonatomic) NSMutableArray *sheng;
@property(strong,nonatomic) NSMutableArray *shi;
@property(strong,nonatomic) NSArray *array; @end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.sheng=[NSMutableArray array];
self.shi=[NSMutableArray array];
NSBundle *bundle=[NSBundle mainBundle];
NSString *path=[bundle pathForResource:@"city.plist" ofType:nil];
self.array=[NSArray arrayWithContentsOfFile:path];
for (NSDictionary *ar1 in self.array) {
NSArray *ar2=[ar1 objectForKey:@"Cities"];
[self.sheng addObject:[ar1 objectForKey:@"State"]];
for (NSDictionary *ar3 in ar2) {
// NSLog(@"%@",[ar3 objectForKey:@"city"]);
[self.shi addObject:[ar3 objectForKey:@"city"]];
}
}
self.picker=[[UIPickerView alloc]initWithFrame:CGRectMake(0, 200, 414, 300)];
self.picker.backgroundColor=[UIColor greenColor];
[self.view addSubview: self.picker];
self.picker.delegate=self;
self.picker.dataSource=self;
}
#pragma mark -数据源 nubertOfComponentsInPickerView:
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
#pragma mark - 数据源 pickerView: attributedTitleForRow: forComponent:
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
if (component==0) {
return self.sheng.count;
}
return self.shi.count;
}
#pragma mark - 显示信息方法 delegate
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component==0) {
return self.sheng[row];
}
return self.shi[row];
}
#pragma mark -选中行的信息
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if (component==0) {
//清除上次选择地城市
[self.shi removeAllObjects];
NSDictionary *dic=[self.array objectAtIndex:row];
// NSLog(@"%@",dic);
NSArray *arr1=dic[@"Cities"];
NSMutableArray * arr2 =[NSMutableArray array];
for (NSDictionary * dic in arr1) {
[arr2 addObject:dic[@"city"]];
}
self.shi=arr2;
[self.picker selectRow:row inComponent:0 animated:YES];
[self.picker reloadComponent:1];
}
else {
NSInteger firstRow=[self.picker selectedRowInComponent: 0];
NSInteger secondRow=[self.picker selectedRowInComponent:1];
NSString *firstString=[self.sheng objectAtIndex:firstRow];
NSString *secondString=[self.shi objectAtIndex:secondRow];
NSString *message=[NSString stringWithFormat:@"您确定要选择%@%@吗?",firstString,secondString];
UIAlertController *alertMessage=[UIAlertController alertControllerWithTitle:@"提示" message:message preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancle=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *ok=[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
[alertMessage addAction:cancle];
[alertMessage addAction:ok];
[self presentViewController:alertMessage animated:YES completion:nil];
NSLog(@"%@%@",firstString,secondString);
}
}
#pragma mark - 行高
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
if (component==0) {
return 80;
}
return 50;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
UIPickerView简单应用的更多相关文章
- iOS开发——高级UI之OC篇&UIdatePicker&UIPickerView简单使用
UIdatePicker&UIPickerView简单使用 /***************************************************************** ...
- UIPickerView 简单操作和实际应用
1.UIPickerView 选择指示器控件 //选择器的初始化 UIPickerView * pickerView = [[UIPickerView alloc] initWithFrame:CGR ...
- iOS学习之UIPickerView控件的简单使用
UIPickerView控件在给用户选择某些特定的数据时经常使用到,这里演示一个简单的选择数据,显示在UITextField输入框里,把UIPickerView作为输入View,用Toolbar作为选 ...
- UIPickerView的简单使用
UIPickerView是一个选择器它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活,使用也比较简单.下面做了一个关于天气预报的小Demo 用 UI ...
- iOS边练边学--UIPickerView和UIDatePicker的简单使用
一.点菜系统练习(UIPickerView) <1>UIPickerView的常用代理方法介绍 #pragma mark - <UIPickerViewDelegate> // ...
- iOS:选择器控件UIPickerView的详解和演示
选择器控件UIPickerView: 功能:它能够创建一个类似于密码锁式的单列或多列的选择菜单,用户可以通过它设置的代理来选择需要菜单中的任意的数据.例如创建日历.字体表(类型.大小.颜色).图库等. ...
- IOS笔记045-UIDatePicker和UIPickerView
这是两种可以上下滚动的控件. 这是UIDatePicker,可以显示日期和时间. 这个是UIPickerView,显示类似几个选择项的界面. 注意点:PickerView的高度不能改,默认162,Pi ...
- iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用
一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPicke ...
- iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
iOS开发UI篇—使用picker View控件完成一个简单的选餐应用 一.实现效果 说明:点击随机按钮,能够自动选取,下方数据自动刷新. 二.实现思路 1.picker view的有默认高度为162 ...
随机推荐
- 解决:HTML中多文本域(textarea)回车后数据存入数据库,EL表达式取出异常。
问题描述: 当多文本域(textarea)回车后数据存入数据库. EL表达式取出异常,值换行倒置页面报错. 问题解决: 存值脚本代码,提交前转换\n为<br/>. <script t ...
- 交换排序---冒泡排序算法(Javascript版)
比较相邻的元素.如果第一个比第二个大,就交换他们两个.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数.针对所有的元素重复以上的步骤,除了最后一个.持续 ...
- [转] MySql 优化 大数据优化
一.我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应用编程接口(API) 应用程序 ------------------------------------------ ...
- Entity Framework 实体框架的形成之旅--Code First的框架设计(5)
在前面几篇介绍了Entity Framework 实体框架的形成过程,整体框架主要是基于Database First的方式构建,也就是利用EDMX文件的映射关系,构建表与表之间的关系,这种模式弹性好, ...
- 基于MVC4+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts
在我们做各种应用的时候,我们可能都会使用到图表统计,以前接触过一些不同的图表控件,在无意中发现了图表控件Highcharts,其强大的功能和丰富的互动效果,令人难以忘怀.本篇主要介绍在Web开发中使用 ...
- 【人在江湖飘,哪有不带刀】神器Jumony
大神博客:http://www.cnblogs.com/Ivony/p/3447536.html 项目地址:https://github.com/Ivony/Jumony 1.安装Jumony包 在N ...
- App单个页面的最佳文本框个数是多少个?
[1].不同大小的手机屏幕,对应的App每页最佳文本框个数,是不同的. [1.1]如果是iPhone4的屏幕尺寸,分辨率为640x960px的时候, 文本框个数最大值为:2个文本框 [计算公式] 第 ...
- 算法實例-C#-信箱排序-PigeonHoleSort
# 算法实例 # 排序算法Sort 信箱排序PigeonHoleSort https://en.wikipedia.org/wiki/Pigeonhole_sort 算法說明 1.信箱算法使用一個完整 ...
- js操纵css更改加载图片大小
- ListView 使用 LiveBindings 显示超过 200 条记录
ListView 使用 LiveBindings 预设加载 200 条记录,这也许是速度的考量,但当需要全部加载的的情况时,该如何做呢?只需加入下面二行代码即可: FDQuery1.OptionsIn ...