【PickerView案例11-自定义键盘操作01 Objective-C语言】

一、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"

猜你喜欢

转载自blog.csdn.net/madoca/article/details/133016029