iOS 【UIKit-UIDatePicker】
来源:互联网 发布:qt编程入门视频教程 编辑:程序博客网 时间:2024/06/06 07:47
UIDatePicker 和 UIPickerView 比较相仿。只不过UIDatePicker是对时间进行操作的。
我们经常在一些输入用户生日的表单中见过,UIDatePicker以键盘的形式弹出呈现出来。
我们接下来要完成一个这样的效果。如图:
①运行程序的时候出现生日的文本框,然后点击文本框会出现选择生日的UIDatePicker,当然这里UIDatePicker是作为文本框的键盘形式出现的。(inputView)
②选择日期,然后点击完成,日期会显示在上一步点击的文本框中
代码比较简单,我们直接看代码就好了。因为在storyboard中我们没有拖拽太多东西,只是拖拽了一个Text Field。
//// ViewController.m// 21-键盘设置//// Created by XXX on 15/11/18.// Copyright © 2015年 XXX. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UITextField *birthdayFiled;//日期文本框@property (weak, nonatomic) UIDatePicker *datePicker;//日期选择@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.// 自定义textFiled键盘 UIDatePicker *datePicker = [[UIDatePicker alloc] init]; // 我们创建出来的键盘是默认的(英文),我们需要设置UIDatePicker的本地化。// availableLocaleIdentifiers 可用的本地化标识,这里的返回值是一个NSArray NSArray *iden = [NSLocale availableLocaleIdentifiers]; NSLog(@"%@",iden);//输出的是所有支持语言的标识符 datePicker.locale = [NSLocale localeWithLocaleIdentifier:@"zh"];//更改语言,“zh”就是中文的标识符(设置本地化)// 修改datePicker的模式(只显示日期,不显示时间) datePicker.datePickerMode = UIDatePickerModeDate; self.birthdayFiled.inputView = datePicker;//想设置什么键盘,我们就可以自定义一个键盘,然后给inputView这个属性 // 创建UIToolbar(键盘上方的工具条) UIToolbar *toolbar = [[UIToolbar alloc] init];// 如果不为toolbar设置bounds,在模拟器中可以正常显示toolbar,但是为其设置UIBarButtonItem的时候这些Button是全部无法点击事件的(有监听方法也不能正常点击)。我们可以理解为没有设置bounds,这个东西只是一个虚拟的,并没有实际存在,下面设置toolbar的背景颜色也是一样的道理 toolbar.bounds = CGRectMake(0, 0, 320, 44);//在storyboard中通过拖拽的toolbar是无法设置bounds的,但是用代码创建的Toolbar可以改变其中的参数(如Height) toolbar.backgroundColor = [UIColor grayColor];//如果没有指定toolbar的位置,那么设置了背景颜色也是无法显示的。 // 创建Toolbar上面的按钮// 创建上一个按钮 UIBarButtonItem *previous = [[UIBarButtonItem alloc] initWithTitle:@"上一个" style:UIBarButtonItemStylePlain target:nil action:nil]; // 创建下一个按钮 UIBarButtonItem *next = [[UIBarButtonItem alloc] initWithTitle:@"下一个" style:UIBarButtonItemStylePlain target:nil action:nil]; // 创建弹簧 UIBarButtonItem *springBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; // 创建完成按钮 UIBarButtonItem *finishBtn = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStylePlain target:self action:@selector(done)]; // 将创建好的4个按钮添加到Toolbar上 toolbar.items = @[previous,next,springBtn,finishBtn]; // 设置 self.birthdayFiled.inputAccessoryView = toolbar; // 将我们创建出来的 datePicker自定义键盘 这个参数 给了我们的 属性datePicker self.datePicker = datePicker;// 我们为什么要创建一个属性datePicker,因为我们在下面的方法中只能通过self.datePicker来访问,而不能访问我们在viewDidLoad中实例化出来的datePicker,所以在这里我们要把我们实例化出来的datePicker赋给属性datePicker}//点击完成执行方法(打印时间看看)- (void)done{ NSDate *selectedDate = self.datePicker.date;//提取datePicker的时间,也就是提取当前自定义datePicker键盘上面的时间// NSLog(@"%@",selectedDate);// 输出一下日期,默认输出的结果是这样的:2015-11-23 01:57:22 +0000(但是我们上面是更改了datePicker的显示模式,不显示时分秒,只显示日期。所以我们要在下面更改一下输出时间的格式) // 设置时间格式的类 NSDateFormatter NSDateFormatter *dateformat = [[NSDateFormatter alloc] init]; dateformat.dateFormat = @"yyyy-MM-dd";//自定义日期格式模板// 将selectedDate设置成自定义的日期格式,注意stringFromDate:方法的使用格式,前面是自定义格式,后面是需要修改的NSDate对象。 NSString *dateStr = [dateformat stringFromDate:selectedDate]; NSLog(@"%@",dateStr);// 2015-11-23 self.birthdayFiled.text = dateStr;//日期文本框的文字传入 [self.birthdayFiled resignFirstResponder];//关闭键盘}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
6 0
- iOS 【UIKit-UIDatePicker】
- iOS-UIKit(UIDatePicker.h--解读)
- UIKit-UIDatePicker和UIPickerView
- ios-UIDatePicker
- IOS UIDatePicker
- IOS UIDatePicker
- 【UIKit-33-1】UIDatePicker - 时间选择器
- IOS 自定义 UIDatePicker 背景图片
- iOS 控件之 UIDatePicker
- iOS基础 -- UIDatePicker
- iOS之UIDatePicker
- iOS UIDatePicker NSDateFormatter
- iOS 自定义UIDatePicker
- iOS开发UIDatePicker,UIPickerView
- ios UIDatePicker语言设置
- iOS UIDatePicker使用
- iOS UIDatePicker 的 用法
- ios UIDatePicker类
- 动态数组创建
- linux系统时间对java.Timer执行产生的影响
- 第十三周 项目一(1)Prim算法的验证(使用图1作为测试用例)
- Lightoj 1021 Painful Bases (状压dp 有趣)
- suibi
- iOS 【UIKit-UIDatePicker】
- Web应用程序基础知识
- putty基本配置
- jQuery Raty 源码改造,设置自己想要的值
- 真正解决三星等手机拍照问题
- 第13周—项目3 Dijkstra算法的验证
- PHP中this,self,parent的区别
- android动画1-平移和旋转
- 第十三周实践项目—算法验证(5)拓扑排序算法的验证