iOS:UIPickerView选择器的使用

通过UIPickerView选择器做的一个类似于密码锁的日期时间表

源码如下:

 1 #import <UIKit/UIKit.h>
 2
 3 @interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>
 4 @property (strong,nonatomic) NSArray *weeks;//显示第一列的数据
 5 @property (strong,nonatomic) NSArray *time; //显示第二列的数据
 6
 7 @property (strong,nonatomic)NSArray *years;   //显示第三列的显示年
 8 @property (strong,nonatomic)NSArray *months;  //显示第四列的显示月
 9 @property (strong,nonatomic)NSArray *days;    //显示第五列的显示日
10
11 @property (assign,nonatomic)NSInteger number;
12 @property (strong,nonatomic)NSString *str;
13 @end

  1 #import "ViewController.h"
  2
  3 @interface ViewController ()
  4 @property (weak, nonatomic) IBOutlet UIPickerView *pickerView;
  5
  6 @end
  7
  8 @implementation ViewController
  9 - (void)viewDidLoad {
 10     [super viewDidLoad];
 11
 12     //初始化
 13
 14     self.weeks = [NSArray arrayWithObjects:@"Mon",@"Tus",@"Thi",@"Wen",@"Fir",@"Sat",@"Sun", nil];
 15
 16     self.time = [NSArray arrayWithObjects:@"上午",@"中午",@"下午", nil];
 17
 18     self.years = [NSArray arrayWithObjects:@"2000",@"2001",@"2002",@"2003",@"2004",@"2005",@"2006",@"2007",@"2008",@"2009",@"2010",@"2011",@"2012",@"2013",@"2014",nil];
 19
 20     self.months = [NSArray arrayWithObjects:@"1",@"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10", @"11", @"12", nil];
 21
 22     self.days = [NSArray arrayWithObjects:@"01",@"02",@"03",@"04",@"05",@"06",@"07",@"08",@"09",@"10",@"11",@"12",@"13",@"14",@"15",@"16",@"17",@"18",@"19",@"20",@"21",@"22",@"23",@"24",@"25",@"26",@"27",@"28",@"29",@"30",@"31",nil];
 23
 24
 25     //设置pickerView的DataSource和Delegate
 26     self.pickerView.dataSource = self;
 27     self.pickerView.delegate = self;
 28 }
 29 - (void)didReceiveMemoryWarning {
 30     [super didReceiveMemoryWarning];
 31     // Dispose of any resources that can be recreated.
 32 }
 33
 34 #pragma mark-pickerView的代理方法
 35
 36 //设置有多少列
 37 -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
 38 {
 39     return 5;
 40 }
 41
 42 //设置每列多少行
 43 -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
 44 {
 45     switch (component)
 46     {
 47         case 0:
 48             self.number = self.weeks.count;
 49             break;
 50         case 1:
 51             self.number = self.time.count;
 52             break;
 53         case 2:
 54             self.number = self.years.count;
 55             break;
 56         case 3:
 57             self.number = self.months.count;
 58             break;
 59         case 4:
 60             self.number = self.days.count;
 61             break;
 62     }
 63
 64     return self.number;
 65
 66 }
 67
 68 //设置每行每列显示的内容
 69 -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
 70 {
 71
 72     switch (component)
 73     {
 74         case 0:
 75             self.str = self.weeks[row];
 76             break;
 77         case 1:
 78             self.str = self.time[row];
 79             break;
 80         case 2:
 81             self.str = self.years[row];
 82             break;
 83         case 3:
 84             self.str = self.months[row];
 85             break;
 86         case 4:
 87             self.str = self.days[row];
 88             break;
 89     }
 90
 91     return self.str;
 92
 93 }
 94
 95 //通过代理方法didSelectRows获取数据
 96 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
 97 {
 98     //NSLog(@"列:%ld,行:%ld",component,row);
 99     switch (component)
100     {
101         case 0:
102             NSLog(@"%@",[NSString stringWithFormat:@"%@,%@,%@,%@,%@",self.weeks[row],self.time[[pickerView selectedRowInComponent:1]],self.years[[pickerView selectedRowInComponent:2]],self.months[[pickerView selectedRowInComponent:3]],self.days[[pickerView selectedRowInComponent:4]]]);
103             break;
104         case 1:
105             NSLog(@"%@",[NSString stringWithFormat:@"%@,%@,%@,%@,%@",self.weeks[[pickerView selectedRowInComponent:0]],self.time[row],self.years[[pickerView selectedRowInComponent:2]],self.months[[pickerView selectedRowInComponent:3]],self.days[[pickerView selectedRowInComponent:4]]]);
106             break;
107         case 2:
108             NSLog(@"%@",[NSString stringWithFormat:@"%@,%@,%@,%@,%@",self.weeks[[pickerView selectedRowInComponent:0]],self.time[[pickerView selectedRowInComponent:1]],self.years[row],self.months[[pickerView selectedRowInComponent:3]],self.days[[pickerView selectedRowInComponent:4]]]);
109             break;
110         case 3:
111             NSLog(@"%@",[NSString stringWithFormat:@"%@,%@,%@,%@,%@",self.weeks[[pickerView selectedRowInComponent:0]],self.time[[pickerView selectedRowInComponent:1]],self.years[[pickerView selectedRowInComponent:2]],self.months[row],self.days[[pickerView selectedRowInComponent:4]]]);
112             break;
113         case 4:
114             NSLog(@"%@",[NSString stringWithFormat:@"%@,%@,%@,%@,%@",self.weeks[[pickerView selectedRowInComponent:0]],self.time[[pickerView selectedRowInComponent:1]],self.years[[pickerView selectedRowInComponent:2]],self.months[[pickerView selectedRowInComponent:3]],self.days[row]]);
115             break;
116     }
117 }
118 @end
时间: 2025-01-12 04:33:16

iOS:UIPickerView选择器的使用的相关文章

Objective-C:UIPickerView选择器的使用

通过UIPickerView选择器做的一个类似于密码锁的日期时间表 源码如下: 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> 4 @property (strong,nonatomic) NSArray *weeks;//显示第一列的数据 5 @property (strong,nonato

一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)

在开发中,经常用到选择多张图片进行上传或作其他处理等等,以下DEMO满足了此功能中的大部分功能,可直接使用到项目中. 主要功能如下: 1,图片九宫格排列(可自动设置) 2,图片长按抖动(仿苹果软件删除时,图标抖动效果),可进入删除状态,再次单击进入普通状态 3,图片设置最大上限,加号按钮自动隐藏 4,已选图片可单击进行重新选择 5,无需代理,直接调用对应属性就可获取所有图片,并与显示顺序保持一致 效果图如下: 1 // 2 // SZAddImage.h 3 // addImage 4 // 5

iOS开发--UIPickerView(选择器控件) 省份和城市的做法

//UIPickerView 是一个选择器控件,它可以生成单列的选择器,也可生成多列的选择器 @interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate> @property(strong,nonatomic) UIPickerView *MyPickerView; @property(strong,nonatomic) NSMutableArray *ProvinceArr;

IOS时间选择器UIPickerView,ios8中UIView替代UIActionSheet

以前在网上下了个时间选择器Demo,由于封装成UIActionSheet类型,而ios8弃用了UIActionSheet和UIAlertView,不得不对代码进行修改.将封装的UIActionSheet改为UIView,为了多态初始化时添加了枚举(几个时间选择器样式). 以前下载的Demo网址实在找不到了,对原作者表示抱歉. 参考:DateTimeYearPickerView,UIActionSheet上添加UIPickerView iOS8替换方案 项目:点击下载 UIActionSheet改

UIPickerView(选择器)

UIPickerView也是一个选择器控件,它比UIDatePicker更加通用,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活. UIPickerView直接继承了UIView,没有继承UIControl,因此,它不能像UIControl那样绑定事件处理方法,UIPickerView的事件处理由其委托对象完成. UIPickerView控件常用的属性和方法如下. Ø numberOfComponents:获取UIPickerView指定列中

ios自定义选择器ActionSheetPicker改进版

ios自带的UIDataPicker和UIDatePicker最大的毛病就是没有带确定和取消这两个按钮,而ActionSheetPicker是以上两个选择器的开源封装.但是这个东东也有些小问题,就是没有汉化选择器的内容. 原始的ActionSheetPicker运行起来是这个样子的: 改进后是这以下这个样子的 点击此处下载,有问题可加扣扣359709421讨论. 补充一个缺陷的修复,在ios7以上版本中,选择器数据部份是透明的,很不美观, 把AbstractActionSheetPicker.m

iOS UIPickerView的简单实用

其实UIPickerView和UITableview的实现方法中,大致是相同的,就连作用都是一样的,只是运用在了不同的效果上而已,那么下面就记录几个方法就可以实现UIPickerView的效果: 1.设置UIPickerView的列 -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 2.设置UIPickerView 的行 -(NSInteger)pickerView:(UIPickerView *)pic

iOS分段选择器、旅行App、标度尺、对对碰小游戏、自定义相册等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App 标签选择器--LeeTagView CSSegmentedControl常用的分段选择器,简单易用! 仿微信左滑删除 IOS左滑返回 输入框 iOS 基于PhotoKit框架的自定义相册 JHDraw - 画线,画虚线,画五角星,画矩形,画虚线矩形 标度尺 对对碰小游戏 iOS优质博客 iOS无痕埋点方案分享探究 前言当前互联网行业的竞争已经是非常激烈了, "功能驱动"的时代已经过去了, 现在更加注重软件的细节, 以及用户的体验问题.

iOS UIPickerView 显示全国省市

效果图 #import "ViewController.h" @interface ViewController () @property(strong,nonatomic)UIPickerView *myPickView1; @property(strong,nonatomic)NSArray *guo; @property(strong,nonatomic)NSMutableArray *sheng; @property(strong,nonatomic)NSMutableArra