一、今天我们来学习三个东西
1.UIPickerView-UIDatePicker-应用程序对象
1.首先,来看数据选择控件
数据选择控件,
大家对这个数据选择控件,是怎么理解的,
1)数据选择控件,首先,是不是得有数据,
2)然后呢,你还得让用户能够选择,
3)最后,你还得是一个控件儿
那前面学过哪些数据选择控件,有印象吗:
1)是不是UITableView
2)UIClatchView
那两个的话,也是数据选择控件,只不过,我们前面只是做一个数据显示
并没有执行一些选择啊,什么操作,
那么今天呢,我们学习这个UIPickerView,也是一个数据选择控件
它的主要目的,是帮助用户,快速的选择数据
比如说,你选择语言的时候,这个是
1)English:英语
2)然后呢,其他的一些语言,对不对,
这个在哪里呢,在这个模拟器,但是,在iOS8以后,它就不用这个PickerView,去做数据选择了,
用的是那个,TableView
点一下,这个模拟器里面的设置
用的是那个TableView
点一下,设置,隐私,
不是,返回一下,在这个General-通用,里面,
在这个通用里面,有一个Region-Language
然后呢,选择这个
iPhone Language:English
这个是不是我们很熟悉的TableView啊
但是呢,在iOS8以前的话,它是用的是这个UIPickerView
主要呢,就是快速选择控件,
选择这个语言,
然后呢,这两个图片,大家可能比较陌生啊
左边儿这个,是iOS7以后的效果,
扁平化
右边儿这个,是iOS6的效果,
然后呢,是一个模拟金属的那个效果,
然后呢,大家了解一下,就行了,
现在都到9了,这些都已经过时了
然后呢,底下这个UIDatePicker,它呢,是帮助用户选择日期的,
显示一个日期组件儿,方便用户选择,
然后呢,比如说,你想选择哪一年,哪一月,哪一日
是不是都可以直接去选,
快速的去滚动,
去选择
2.然后呢,再看下一张
然后呢,UIPickerView,它呢
使用的话,跟我们那个UITableView,是非常像的,
然后呢,也需要一个
1)UIPickerViewDataSource,数据源协议
2)UIPickerViewDelegate,代理协议
前面的DataSource,和Delegate,是不是很熟悉啊,
TableView里面有,它呢,也有,
然后呢,这里面有一个注意,就是
1)使用这个PickerView,之前,需要指定它这两个协议,
2.还有这个UITextField的inputView,
UITextField,是不是一个文本框,
前面,我们点击这个文本框,会出现什么,是不是会出来一个键盘,
但是,如果你把这个UIPickerView,指定成UITextField的inputView的话,
它就会占据原来键盘的位置,
先有个大致的印象,
后面的话,就是它的使用,
这是随机数,我们后面再说,
3.那接下来,我们就来看一下,今天的Demo
前面,同学们预习了的话,有没有看这个代码,
预习代码,知道在哪儿吧,
然后呢,在第二份儿,其他资料里
是不是有个预习代码
然后呢,打开,
我把这个跑一下,首先呢,我们今天要做的第一个小的案例,就是点餐系统
首先呢,我们今天要做的第一个案例,就是关于这个点餐系统的,
大家有没有试过,用这个PickerView选择数据,
然后呢,当你选择一些水果,主菜,饮料的时候,下边都会跟着显示出来,
选择“随便”,点上面的“随机点餐”,随机出来一个,
接下来呢,咱们就来做一下这个,
我们先,新建一个项目,
新建,
Name:01-点餐
新建
前缀:HM
前面,我们做一些案例的时候,首先,你是干嘛,
是不是先:
1)搭建界面
2)搭建界面,你是不是还得分析一下,首先,咱们来看这个界面
点餐系统,它里面,有哪些组件儿呢,
1)首先,这个顶部,是不是有一个View,
2)然后,里面,放的什么,一个Button,一个Label,对不对,
3)然后呢,中间这一部分,是什么,就是我们今天要学的UIPickerView
4)然后呢,底下,6个Label
左边3个,是不是显示你,选中的什么类别,
右边3个,是不是显示你,选中的什么东西,
好,这是我们这个结构,
然后呢,我们再看一下,如果去设置约束,顶部的这个点餐系统,怎么设置它的约束,
是不是水平居中、垂直居中,就好了,
大小,它会根据字体的文字,去调整,
然后,随机点餐呢,
是垂直居中,然后呢,距离左边,多少,
然后呢,中间这个PickerView,直接,距离顶部为0,两边儿一个约束,
3.然后呢,我们来搭建这个界面,是不是在控制器里面,直接拖,就行了,
我把模拟器放出来,把它保留在最前面,
1)第一步,干嘛,拖控件儿,拖什么,View,吧,
它的背景色呢,我们随便设了一个,
然后呢,它的约束,这个勾去掉,
勾去掉,大家知道什么意思吧,
距离上边是20,左右两边儿呢,都是0,
选择:自动更新frame,点击增加,
额,高度没设,
高度的话,我们设44,了啊,
然后呢,中间一个Label,
然后呢,文字改一下,
“点餐系统”
然后呢,这个约束,是不是垂直、水平、居中
选择更新frame,把垂直、水平、居中的勾选上,
点击增加,
Button,也是一样的,
拖上来,
文字,改成:“随机点餐”,
它的约束呢,垂直居中,
点击增加,
然后呢,距离左边的约束,
把下拉菜单打开,选择View
数值,直接设为20,
选上自动更新frame,点击增加,
清空一下这个按钮的约束,
垂直居中,是吧
距离左边,再来一个,就行了,
距离左边,我设置一个20,然后选择更新frame,点击增加,
好,随机点餐,
4.然后,PickerView的话,在我们下边,提供的有,前面这个,是UIDatePicker
然后,下面这个呢,是UIPickerView
所以呢,我们拖一个进来,
它的高度的话,一个默认的高度,是216,
左边,看一下,216,
然后,我直接设置它的约束了啊,
距离顶部0,
距离左、右两边儿,0,
把这个勾去掉,
距离顶部、距离左边、距离右边、数值都改成0,
然后呢,更新一下frame,点击增加,
然后呢,底部,6个Label,就直接放进去了
然后呢,PickerView的话,这个背景色,也改一下,
蓝色
然后呢,拖一个Label上来,
按住option键,复制出来2个,
然后呢,把这3个选中,复制出来3个,
对吧,
它们的约束,怎们加,先把左上角的Label确定,其他的跟着它走,就行了
先固定一个,再去管其他的,
这个的话,我设置它,距离顶部、距离左边,都为20,
把这个勾去掉,
选择更新frame,
点击增加,
它的是不是就好了,
然后呢,这两个,拖一下,
2)第二个,是不是距离顶部的距离,得设置一下,
我先设置它,距离顶部,20,
点击增加,
然后,左边呢,它们3个对齐,是不是就可以了,
3)第三个呢,也是距离顶部,20,
把这个勾去掉,
点击增加,
4)它们这3个,什么关系,同时选中,是不是添加一个左对齐,就好了,
是不是Leading,是不是这个,
选中自动更新frame,点击增加,
左对齐,就好了,
5)然后呢,这三个呢,先把一个,确定好,
这一个,它是不是跟我们左边这个,是不是顶部对齐,
然后,水平,一个间距,就够了
大小,你能固定吗,
大小,不能吧,我需要到最后,显示字,
我们按住Control键,拖过来,水平的,然后Top的,
这两个勾,勾上,
额,不是,是不是水平一个间距,垂直中心对齐吧,
有问题吗,没有,我就直接加了啊
6)然后呢,这个呢,
它们3个,是不是左对齐,
所以说,我直接按住control键,把这三个选中,
然后呢,把这三个左对齐、加一下,
点击增加,
7)然后呢,第二个、跟第三个、是不是跟左边儿,也是垂直中心对齐,
按住control键,把第二个,拖过来,
选择Center Vertically,点击
8)然后,这个的话,也是Center Vertically
按住Control键,拖过来,
选择Center Vertically
现在,我们这6个Label,设置好了,
然后呢,我把这个文字,也改一下
1)第一个,是什么:水果
2)第二个,是什么:主菜
3)第三个,是什么:酒水
右边这三个,就不要设定了,它是自己去设定内容啊,
把所有的这个约束,再更新一下,
是不是就可以了,
然后呢,我们现在,先在iPhone6下,看一下它的效果啊
而且呢,我们这个是,支持多屏幕的,
界面,是不是有了吧,
然后呢,没内容,
然后呢,多屏幕适配,咱们怎么看,先点开这个“辅助编辑器”,再点击这个Automatic,
再点击这个Preview
这里,是不是直接去添加
5.然后呢,接下来,怎么办,搭建好界面以后,是不是要加载它的数据
最后,是不是显示数据,
所以呢,它的数据,大家知道在哪儿放吧,
在我们今天的资料里面,有一个01foods.plist,
这个里面,就是它的数据,
2)然后呢,02cities.plist,是第二个
3)然后呢,03flags.plist,是第三个
所有案例的数据呢,都在这里,
那我直接把这个01foods.plist,拖进去
拖到Supporting Files文件夹下
点击Finish
接下来,我们先看一下它的数据,
首先,这个food里面,什么情况,
总的,是不是一个数组
Root,是一个数组,对吧,
然后呢,这个数组里面,装了3个,什么,是不是也是3个数组,
然后,每个数组里面呢,
又是一个一个的字符串,对不对,
然后呢,接下来,干嘛,是不是加载它的数据,
这个加载数据,我们是不是写了很多遍了,
所以呢,怎么办,在哪里写,
ViewController.m文件中,
1)先弄一个数组
2)然后呢,懒加载,放到下面
if(你这个没有数据的话,是不是就加载一下)
if(_foods == nil){
_foods = NSArray arrayWithContentsOfFile,
File的话,是不是NSBundle mainBundle
然后呢,pathForResource,是吧
然后呢,文件的名称,是不是“01foods.plist“,吧,
type,直接传一个nil
然后呢,是不是直接返回啊
return _foods;
文章来源:https://www.toymoban.com/news/detail-699040.html
因为我们这个里面,foods里面,里面的数组,这些数组里面呢,都是一个一个的字符串
所以说,是不是不需要转模型,
如果是字典的话,你可以考虑转模型,对不对,
然后呢,这个数据,现在就加载好了,
文章来源地址https://www.toymoban.com/news/detail-699040.html
好,这就是我们说的第一个,搭建界面
到了这里,关于【UIPickerView-UIDatePicker-应用程序对象 Objective-C语言】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!