【知识点总结和按钮案例介绍 Objective-C语言】

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

一、知识点总结

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个吧

当点击并按住图片的时候,会成另一个图片,当鼠标松开的时候,会变回原来的图片

另一个图片

当点击向上的箭头时,图片会向上移动,当点击向下的箭头时,图片会向下移动,当点击向左的箭头时,图片会向左移动,当点击向右的箭头时,图片会向右移动,

当点击加号时,图片会放大

当点击减号时,图片会缩小

这四个方向和加号减号的箭头,默认时黑色的,当点击的时候,会变成绿色

我们下一篇文章,会先把这个实现了,这里全都说的是按钮的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值