一、UIDatePicker - 日期选择控件 1.上节课呢,我们把这个国旗选择,已经实现过了,对吧, 然后呢,是我们这个日期选择控件,UIDatePicker 自定义View,大家是不是已经很熟悉了, 所以呢,我们就不再多说了, 那接下来呢,我们就来看,第二个控件, UIDatePicker, 上午呢,我们只是简单介绍了一下,下午呢,我们用它来做一些事情了, 那,首先呢,也是一样的,先让大家看一下它的案例啊, 点这个“13-第1天(应用程序启动原理).xcodeproj“ 打开这个项目: 然后呢,选择第4个Target:UIDatePicker command + R: 这儿是不是一个文本框,然后呢,点击这个文本框以后: 看到没有,通常我们在点击文本框以后,它应该是什么情况, 显示的是一个键盘,对不对, 但是呢,这里显示的是什么,是不是一些日期啊,你可以选择, 1)点击取消:任何反应都没有 2)单击确认: 把对应的时间,给它放上去, 底下这个界面,就是我们UIDatePicker,实现的, 那中间这个呢,待会儿给大家解释一下, 好,那首先呢,我们先来看一下, 2.UIDatePicker控件: UIDatePicker:主要目的,方便用户进行日期、时间的选择, 刚刚看到的,是不是一个日期, 下去写的时候呢,也可以考虑用一下时间,也都是可以的, 通常以TextField的inputView,来呈现的, TextField的inputView,是什么样子呢, 比如说,这是一个手机界面: 上面呢,有一个文本框: 默认情况下,我们点击这个文本框以后,它就会给你弹出来一个键盘, 那键盘呢,大概就是这么多: 键盘的高度大家知道一下,大概就是216, 就是216的高度, 默认情况下,你点击文本框,弹出来呢,是一个键盘,然后你可以,输入文字啊,数字啊,都可以, 但是呢,如果你把这个文本框,的inputView,我们这里的inputView,把它改进去呢, 就不是啦, 这个单词呢,inputView: input:什么意思啊,输入, View:呢,就是一个输入界面啊, 输入视图、输入界面: 那,视图,是不是就是我们的控件儿啊, UIView类型的控件儿, 然后呢,输入视图,输入的一个控件儿, 如果你把它这个inputView,给它设置一下, 那以后,你给它放的是什么界面, 那它显示的就是什么界面, 你把UIDatePicker,交给它, 那,你一点文本框,弹出来的,就是DatePicker了, 而不是系统的键盘了, 还有,inputView,还有一个东西, inputAccessory 我把这个东西呢,往外移一下, inputAccessoryView:这个是什么玩意儿呢, 这个的话,是在键盘上,键盘上面绑着的一个条儿: 键盘上面绑着的一个条儿: Accessory:这个大家见过吧,Accessory,什么东西啊, 是不是辅助视图啊, 那inputAccessoryView:输入辅助视图, 就是在这个,画一下啊,大概就是在我们键盘上,大概就是这么高的一个位置: 你如果设置了视图,你估计一下它的高度, 然后呢,就可以显示出来,当然,你把高度调高一下,它可能它的现实,也可能会变高: 然后呢,就是这么一个视图, 当你点击文本框,那它们俩都会弹出来, 如果你同时设置了inputView,以及inputAccessoryView, 那它们俩呢,就是一块儿弹出来了, 如果你只设置了inputView,那只是键盘被换掉了, 也就是说,刚刚看到的那个“取消、确认”,它呢,就是在这上面放的, 咱们回来,继续: 这个UITextField,就给大家介绍到这儿, 那这里面是使用,就不说了, 待会儿写代码的时候再说, 一会儿再说, 4.NSDateFormatter:我们是不是以前用过, 所以呢,我们这里,也不再多看了啊, 1)你如果日期转为字符串:有一个[formatter stringFromDate:] Date:是不是就是日期啊, string:呢,是不是就是字符串儿啊, stringFromDate:从日期转为字符串儿, 2)那返回去也是一样的:[formatter dateFromString:] 把字符串儿,转成一个日期, 对吧, 好,就这么两点,那接下来呢,我们,目的,就是要实现这个文本框的自定义键盘: 但是呢,这上面这个东西,需要给大家补充一下,“取消、确认”这一条儿, 上面这个呢, 1)首先:“取消、确认”,我们是不是常用的一个按钮啊, 但是,这个按钮,在哪儿放呢,文本框的inputAccessoryView里面, 但是,它也不是直接放上去的, 它需要用到另一个控件, 我们一块儿来看一下, 二、新创建一个项目啊 1.选择这个:New-Project, 选择这个Single View Application: Name:08-自定义键盘datePicker: 好,我们先来到Main.storyboard: 先体验体验啊: 那两个条儿,先给大家看一下啊: “取消、确认”这两个放在哪儿呢, 我把这个Window:stay in Front: 我把这个window放到最前面啊, 好,首先,”取消、确认“,这两个东西,它不是我们常用的一个Button, 我们需要用到一个新的控件,叫做:UIButtonItem, 这个东西,没什么难的,它就是一个按钮,不过,类型不一样: 看到没有:UIButtonItem, 你就把它当按钮用,没有任何问题, OK,就是一个按钮, 点它,会有一些操作,但是呢,它有一个特点,就是,它不是哪一个View,都能包的,它需要放到一个UIToolbar or UINavigationItem, 1)这个UINavigationItem:大家不用去纠结啊,这个明天我们会学的, 这是一个导航栏, 2)这个UIToolbar:就是我们在这里: 用的这个背后的这个东西, 灰灰的、浅灰色的这么一个效果, 2.然后,我们先来一个UIToolbar,给大家看一下啊, 那UIToolbar:哪个是UIToolbar呢, 就是我们这个带Edit,的东西, 看到没有:UIToolbar, 它呢,也不难,就是一个条儿, 然后呢,里面呢,就是放一些功能按钮, 但是呢,这个按钮,也不是说你啥按钮都能往上放, 必须要一个:UIButtonItem, 因为放的东西呢,都是一个:instance of UIButtonItem, 它写的这个toolbar items:呢,实际上就是里面的这些UIButtonItem, 3.咱们一个一个来看啊,先看这个UIToolbar: 把UIToolbar:呢,拖上去, 放这儿: 把它直接放到这里面, 看到没有: 这就是一个UIToolbar, 旁边这个呢,我就放到后面去了啊, 这是UIToolbar:简称就是Toolbar,看到没有, 没什么难的啊,它就是一个View, 只不过,系统帮我们包装了一下, 简称:叫UIToolbar, 然后里面放的这些东西呢: 不是平常的按钮,然后呢,是一个ButtonItem, 看一下它的类型: 看到没有:UIBarButtonItem: 没问题吧,其实就是一个按钮,你也可以正常的点击,点一下,执行一些操作, 然后呢,你还可以,再给它拖一个ButtonItem: 两个ButtonItem: 然后呢,左边这个东西,我给它改一下标题,跟我们按钮一样: 它里面,你要么指定文字,要么指定图片,不能同时指定两个东西的, 我把它改成“取消” 这边呢,我给它改成“完成” 我再拖一个BarButtonItem, 这个BarButtonItem呢,放到它们俩中间: 然后呢,这个东西,我们在这个文本框: 点击以后,取消、和确认、是不是在两端的, 那大家说,这个怎么放呢, 是需要把它放到这边儿,放到那边儿吗, 这个“完成”,我是拖不过来的: 拖不过来的,它自己又会回去: 但是,你可以选中中间这个BarButtonItem,然后呢,有一些系统的类型,大家应该也见过的, 比如说,我们看一下其他的: 这底下这些,都是系统的类型, 然后,有个“Add" 加号: