一、知识点总结
1.向storyboard中添加控件
这个storyboard是什么东西,是不是就是我们列表中的Main.storyboard文件啊
注意,只要是后缀是storyboard这个东西,就表示它是用来描述软件界面的,我们可以直接向这个界面中拖拽控件
2.UIViewController和UIView的关系
首先,UIView是所有控件的祖宗类
UIView它就是控件,它只负责展示数据、采集数据
UIViewController它就表示控制器,控制器管理这个UIView的创建、销毁、一系列的过程
然后,这个UIView中,UIView本身的所有事件,以及它的所有子控件的所有事件,都是交给UIViewController来管理的
所以说,我们以后写代码,大多数都是在UIViewController,在控制器里写代码
控制器就是一个UIView的管理者
3.程序的运行过程
这个之后再说
4.IBAction和IBOutlet的作用
那么这个拖线的时候,会生成两个关键字,一个叫IBAction,一个叫IBOutlet,这两个关键字是什么意思
当一个控件拖到控制器的延展中的时候,有可能会生成1个属性,也有可能会生成1个方法,这取决于你在Connection参数里是选择Outlet,还是选择Action
你选择Outlet,代表生成属性
你选择Action,代表生成方法
如果是属性的话,它里面有1个关键字叫做IBOutlet,
如果是方法的话,这个返回值是IBAction
IBAction,表示什么意思
表示返回值就是void
但是为什么不写void,而要写IBAction呢,因为只有写IBAction,Xcode才能认,才能拖线,就是为了拖线
IBOutlet也是为了拖线使用的,它是用在属性里面
5.如何监听一个控件的事件呢,比如按钮的点击事件
是不是就是通过拖线的方式啊
在我们这个控制器里,可以事先写好方法,或者不写方法,直接拖线,选择Action,是不是就可以监听对应的事件了
6.父控件和子控件的概念
什么叫做父控件,什么叫做子控件
是不是我这个控件,继承自你的控件,我就叫做你的子控件,你就叫我的父控件,是不是
不是,我们说任何一个控件,因为它都继承自UIView,所以说它们都是容器,当把一个其他控件加到这个控件里面的时候,这个时候,加进去的控件叫做你这个控件的子控件,你叫做里面控件的父控件
不是说,我继承自你,我就是你的子控件了
任何一个控件,都继承自UIView,这是它们第一个基本关系,
所以说,任何一个控件,都是容器
大家都一样,我们都是容器,
你只要到了我的里面,你只要到了我里面,你就是我的子控件,我就是你的父控件
当把一个控件,放到一个控件里面的时候,它就叫做外面那个控件的子控件,外面那个控件,就叫做里面那个控件的父控件
和它们的继承关系,有关系吗,没有
所以,子控件和父控件要搞明白,是因为它加到容器里面,才叫子控件和父控件
不放进去就不是,不放进去,你就不是我的子控件,我也不是你的父控件
咱俩可能是兄弟关系,比如说,我们这几个控件,都在那个大的UIView里面,咱们都是兄弟关系,但是咱们都属于大的UIView的子控件,
你如果是继承关系,只能叫做父类和子类
7.退出键盘
两种方式:
1)让“第一响应者”,resignFirstResponder,辞去“第一响应者”
2)让它们所在的那个View ,endEditing,停止编辑
8.接下来,我们再看这个程序的运行过程
1)当你程序键好了以后,选中这个项目,右边Bundle identifier:就是这个程序的唯一标识,你可以修改这个程序的唯一标识,Version,是这个应用程序的版本,Build,是我第几次编译这个应用程序
2)Deployment Target,这是一个关键点,
这个字面意思是,开发目标,什么叫做开发目标
我们一个手机,是不是有很多iOS系统吧,15.0啊,这个参数,表示你当前开发的应用程序,最低支持哪个版本的iOS系统
Devices,表示支持的设备,这里选择iPhone,表示支持手机
3)Main Interface,这是一个关键点
这个参数选择Main,是什么意思
我们这个程序里,是不是有个Main.storyboard,文件啊,
我们可以建很多个storyboard,选择“01 加法计算器”文件夹,右键,New File,选择User Interface,选择Storyboard,名字给个Second.storyboard,点击Create
Second.storyboard里面,我也给它拖1个控制器,也就是View Controller,
右边的View Controller属性界面,选择“is initial View Controller”
选择View,右边属性里,Background背景颜色选择“紫色”
注意看,我现在有两个Storyboard,一个是Main.storyboard,是我们的加法计算器吧,另一个是Second.storyboard,里面是一个紫色的界面
那么大家思考一下,我运行的时候,是能看到Main.storyboard的加法计算器呢,还是能看到Second.storyboard里面的紫色界面呢
运行,看到的果然是“加法计算器”
为什么,因为你在项目的配置界面里,General页面下的Deployment Info里面的,Main Interface,里面选择的是Main,
这说明,你在这里配置的,启动时候,启动的是Main.storyboard
你如果配置的是Second.storyboard,你再启动的时候,启动的就是Second.storyboard
4)后面这些设置,我们以后再说吧
Landscape Left,Landscape Right,这两个是“是否支持横屏”,
我们这个应用程序,不需要横屏,所以就可以把这两个勾去掉吧
5)另外,再说一个,当我们点开Main.storyboard以后,是不是发现左边有一个箭头,指向这个手机界面
它表示什么意思
因为我们在1个Storyboard里面,可能会有很多个控制器,
有这么多个控制器,你默认启动的时候,是运行哪个控制器呢
箭头指向哪个控制器,默认启动的时候,就运行哪个控制器
这个箭头可以拖动,拖到哪个控制器上面,默认启动就运行哪个控制器,
但如果一开始这个箭头就没有,你想让“加法计算器”这个控制器,默认启动这个控制器,怎么办,选中“加法计算器”这个控制器,右边的属性里面,选择“Is Initial View Controller”
这个属性的意思是,它是不是初始化控制器,
这儿勾一个“是”,看,箭头是不是过来了
这几个控制器,不要它们了,怎么办,选中列表中的View Controller,按下Delete键,就删掉了
6)程序运行的过程,就是
在我们启动程序的时候,首先,它会去找你Main Interface这儿的配置,看你默认启动的是哪1个Storyboard
如果你这儿配置的是Main的话,它就会去启动Main.storyboard文件,
然后,它会去看默认启动的是哪1个控制器,就是有这个箭头的这个控制器,
启动好这个控制器以后,它会先创建这个控制器,怎么创建呢,它会去看这个控制器对应的是哪个类,就是Custom Class属性里的Class参数,例如:ViewController这个类,
那么它就会创建这个类的对象,也就是ViewController.m这个类的对象,
创建这个类的过程当中,它就会创建这个类里面对应的那个self.view,
那么这个self.view,就是我们界面里看到的这个蓝绿色的大的这个View吧,
把这个View创建好以后,会创建这个View里面的每一个子控件,
把这些都创建好以后,最后,就会把这个View显示到屏幕上
然后,你就看到这个View了,
所以说,如果要是现实一个新的界面,没有控制器,那个View能显示出来吗,不可能显示出来
首先,是得有一个控制器
二、留一个作业
1.在界面上拖几个控件,实现如下效果

1)这个灰色的占位字符串"请输入QQ",怎么实现
用文本框的placeholder属性实现
2)QQ文本框,只能输入数字
弹出键盘,要变成一个数字键盘吧
这个通过文本框的Keyboard属性实现
3)密码文本框的文字必须是掩码,
通过文本框的Secure属性实现
4)点击登录按钮后,输出用户输入的QQ和密码,并且退出键盘,采用减号连接,例如“2552288 - qee”
5)文本框右侧,显示清除按钮,就是一个小叉子,一点它,就清除了,
这个通过文本框的Clear Button属性实现,默认值:Never appears

三、模拟器简介
1.首先,模拟器的放大缩小,是command + 1,command + 2 ,command + 3
2.选择Hardware-Device,可以选择使用哪个手机界面
3.选择Hardware-Rotate Left,可以向左旋转
选择Hardware-Rotate Right,可以向右旋转
4.选择Hardware-Home,可以按一下Home键
5.选择Hardware-Simulate Memory Warning,可以模拟内存警告
6.选择Hardware-Keyboard,可以打开模拟键盘
7.选择Hardware-External Displays,可以打开扩展屏幕
屏幕分辨率等等
8.选择Debug调试-Location,可以选择你在的位置,假设咱们在什么位置呢,假设咱们在一个Custom Location,客户自定义的1个位置
假设咱们在Latitude,纬度40,Longitude,经度116的位置
就是假设当前你在这个位置调试程序
9.比如说,你模拟器想重置一下,怎么办,
选择iOS Simulator,Reset Content and Settings,这样的话,之前装的所有内容,是不是都没了,相当于手机恢复出厂设置一下
10.怎么去卸载某个程序,是不是长按,抖动起来之后,就可以卸载了,系统程序不能卸载,比如通讯录
四、拖线后@property代码、事件处理方法被删除了
1.错误信息:this class is not key value coding-compliant for the key resultLabel
比如,我把“+”这个标签拖到延展里,但是我把这个@property给删了,没删除拖线连接
但是跟它相关联的@property属性已经删掉了
就会报这个错误,
报错无论它后面有多复杂,别看,看最上面,看这个“reason”,为什么出错啊,this class is not key value coding-compliant for the key resultLabel
只要遇到this class is not key value,什么什么东西
只要遇到这个错误,很有可能就是拖线有问题
这儿拖线的问题就是,你这个拖线还在,但是你对应的那个@property属性已经删掉了
这时候,怎么解决
要么把属性加上,要么把拖线删掉,就是右键点控件,那个小叉子,点一下
2.我这里再提醒大家一下,我么这个拖线要拖到哪里,要拖到控制器的.m文件中的延展里面吧
五、什么是按钮
1.按钮,是能点击的控件
2.按钮可以长的各式各样,你看不出它是1个按钮,因为它上面用图片表示了
3.按钮的功能比较多,既能显示文字,又能显示图片
还能设置背景图,还能点击
并且点击的时候,不同的状态,还有不同的效果
所以说,按钮的效果是比较多的,所以接下来,我们就说一下这个按钮
4.所有的这些控件,例如UIButton,UILabel,UIImageView,UITableView等等,都是谁来提供的,
都是UIKit框架提供的
5.接下来,我们要做1个这个小案例

注意看,上面这个图片,其实是1个按钮
下面这4个箭头,加号和减号,也是按钮
这个界面上有几个按钮,7个吧
当点击并按住图片的时候,会成另一个图片,当鼠标松开的时候,会变回原来的图片

本文介绍了iOS开发的基础知识,包括storyboard的用途,UIViewController与UIView的关系,程序运行流程,IBAction和IBOutlet的作用,以及如何监听控件事件。此外,讲解了父控件和子控件的概念,以及退出键盘的两种方式。还探讨了项目配置中的MainInterface参数,解释了如何通过拖线创建属性和方法。作业部分要求在界面上实现特定的输入和交互效果,如文本框的placeholder、数字键盘、安全输入和按钮事件。最后,介绍了模拟器的使用技巧以及处理拖线问题的方法,并简单介绍了按钮的功能和应用场景。

1233

被折叠的 条评论
为什么被折叠?



