功能,用UIDatePicker 和UIToolbar

实现点击文本框弹出日期选择空间.

点击确定按钮获取时间显示到对应的Text Field里面,点击取消按钮隐藏键盘.

1.创建textField控件,并生成属性.

xcode版本不一样,textField显示的格式也不一样,建议大家可以在text文本框里面设置一个背景图片.这样在什么样的版本下显示的都一样.

@property (weak, nonatomic) IBOutlet UITextField *textField;

2.创建一个日期选择控件并设置属性

- (void)viewDidLoad {

[super viewDidLoad];

//创建日期选择控件

UIDatePicker *datePicker = [[UIDatePicker alloc] init];

//设置控件的语言和区域,修改为中国简体字体

datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh-Hans"];

//设置控件的显示模式,显示日期和时间.

datePicker.datePickerMode = UIDatePickerModeDateAndTime;

//把这个日期选择控件设置为文本框的弹出键盘

self.textField.inputView = datePicker;

   self.datePicker = datePicker;  //最后解释这句代码的意思.

}

3.创建UIToobar(工具栏),并设置属性和工具栏上面的按钮以及frame.把工具栏设置成为键盘上面的工具栏

    //创建UItoolbar(工具栏)以及设置属性
UIToolbar *toolBar = [[UIToolbar alloc] init]; //设置工具栏的背景色
//toolBar.barTintColor = [UIColor purpleColor]; //这个方法是继承自UIView,不建议使用.
toolBar.barTintColor = [UIColor purpleColor]; //自己的方法 //设置工具栏的frame
toolBar.frame = CGRectMake(, , , ); //把工具栏设置成为日期选择控件上面的工具栏
//inputAccessoryView方法表示键盘上面的工具栏(把控件设置为inputAccessoryView后,这个控件的frame中,只能修改height,其他的属性无法设置,所以在设置frame时,只设置了高度)
self.textField.inputAccessoryView = toolBar; //为工具栏添加按钮
//添加关闭按钮
UIBarButtonItem *itemClose = [[UIBarButtonItem alloc] initWithTitle:@"关闭" style:UIBarButtonItemStylePlain target:self action:@selector(didClickCloseButton)];
//在工具栏的按钮中,只有两个按钮,前面的取消和后面的完成,工具栏中的按钮只能按顺序排放,所以中间需要加一个弹簧按钮
//添加弹簧按钮
UIBarButtonItem *itemSpring = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
//添加完成按钮
UIBarButtonItem *itemDone = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:nil action:@selector(didClickDoneButton)];
//将三个创建好的控件设置到工具栏上
toolBar.items = @[itemClose, itemSpring, itemDone];

4.实现点击取消(didClickCloseButton)和完成(didClickDoneButton)按钮时的事件

//实现点击了取消按钮的方法
-(void)didClickCloseButton
{
[self.view endEditing:YES];
}
//实现点击完成按钮时的方法
-(void)didClickDoneButton
{
//1.获取用户选择的日期
//因为datePicker日期选择控件是在viewDidLoad方法里面创建的,在这里拿不到.所以创建一个属性.并且在创建好日期选择控件后赋值.(在创建日期选择控件时有说明)
NSDate *selectdDate = self.datePicker.date;
//2.把获取的日期转换为字符串对象,并设置到文本框中
//NSDateFormatter这个类型的对象用作就是:1.把NSDate转换成NSString 2.把NSString转换成NSDate(只能做日期和字符串之间的转换)
//NSCalendar 这个是用来获取时间(NSDate)中的部分数据
//2.1创建一个日期格式化器
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//2.2设置要格式化的日期格式
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//2.3进行转换
NSString *stringDate = [formatter stringFromDate:selectdDate];
//3.进行赋值
self.textField.text = stringDate;
//4.关闭键盘
[self.view endEditing:YES];

UIDatePicker和UIToolbar的使用的更多相关文章

  1. 【iOS发展-70】点菜系统案例:使用文本框inputView和inputAccessoryView串联UIPickerView、UIDatePicker和UIToolBar

    (1)效果 (2)先在storyboard中设计界面,然后源码(直接在ViewController中码) #import "ViewController.h" @interface ...

  2. iOS开发——UI篇Swift篇&玩转UItableView(一)基本使用

    UItableView基本使用 class ListViewController: UIViewController , UITableViewDataSource, UITableViewDeleg ...

  3. iOS 进阶 第八天(0407)

    0407 UIPickerView.UIDatePicker和UIToolBar请参见视频和代码 pch文件 #ifdef __OBJC__ //在这里面写oc的引用,比如一些oc的头文件或者NSLo ...

  4. 做个知识回顾目录,打算每日更新一下ios的基础知识

    一.基础技能列表:   01 面向对象特性       类与方法封装       通过继承扩展类       抽象类与方法覆盖       多态.动态类型和动态绑定       分类和协议       ...

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

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

  6. UI--UIPickerView和UIDatePicker的总结

    回到顶部 UIPickerView的主要方法和城市选择器的修正 UIPickerView只有两个数据源方法.要想完整地显示出PickerView,需要结合使用代理方法 数据源方法: // 一共有多少组 ...

  7. IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)

    ***控制层 #import "ViewController.h" #import "CZKeyboardToolbar.h" @interface ViewC ...

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

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

  9. [iOS基础控件 - 6.10.3] DatePicker & UIToolBar

    A.需求 1. 学习DatePicker的基本配置 2.使用TextField召唤指定类型的输入键盘View,这里使用DatePicker 3.给输入键盘上方加上一个UIToolBar,实现如关闭键盘 ...

随机推荐

  1. Zabbix3.x安装图解教程

    准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...

  2. pip和easy_install更换使用国内源

    因为论文原因,需要使用python安装一些自然语言库,但是使用pip或easy_install安装包时,总是超时(中国特色搞得事:-D),没有办法,上网查资料解决问题~~,在网上找到的方法都是说更换国 ...

  3. 【Android】实现打开关闭效果

    最近抽时间学习一下Android,做个笔记: 布局xml: <LinearLayout android:id="@+id/date_label" android:layout ...

  4. LMAX Disruptor—多生产者多消费者中,消息复制分发的高性能实现

    解决的问题 当我们有多个消息的生产者线程,一个消费者线程时,他们之间如何进行高并发.线程安全的协调? 很简单,用一个队列. 当我们有多个消息的生产者线程,多个消费者线程,并且每一条消息需要被所有的消费 ...

  5. tcpdump用法

    http://man.linuxde.net/tcpdump http://www.cnblogs.com/yc_sunniwell/archive/2010/07/05/1771563.html

  6. golang os/exec 执行外部命令

    exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o. func LookPath(file string) (st ...

  7. svn patch

    生成patch文件: svn diff > patchFile // 整个工程的变动生成patch 或svn diff file > patchFile // 某个文件单独变动的patch ...

  8. stm32cube--ADC单次转换

    stm32cube的ADC配置 ① ② ③ ④ ⑤ 二:用到的函数 HAL_StatusTypeDef       HAL_ADCEx_Calibration_Start(ADC_HandleType ...

  9. OpenCV 计算区域的内部参数

    对于一个区域,怎么进一步针对区域内部特征进行处理呢 ? 首先,我们要提取出来内部的某些特征才能说话,下面提取一些简单的特征,话不多说见代码: 1.平均数及方差参数: Mat tempMean, tem ...

  10. [分享] 封装工具ES4配置文件解释

    [分享] 封装工具ES4配置文件解释 LiQiang 发表于 2015-2-3 14:41:21 https://www.itsk.com/thread-346132-1-4.html [分享] 封装 ...