IOS开发简介 -02 Storyboard介绍
1.storyboard
- storyboard,俗称故事板,即我们可以通过故事板构建软件的基础界面,可以通过拖拽的方式往里面添加控件元素,从而形成应用程序的界面,每个故事板都对应由一个控制器来管理
- 控制器概念:任何继承UIViewController的类都是一个控制器,控制器主要是用来管理UI界面(负责管理UI界面的创建和事件的处理)
- 通过查看storyboard的custom class可以看到与之关联的控制器
2.main.storyboard和UIViewController连线
- UI界面是可以和它与之对应的控制器进行连线的,我们可以通过连线的方式, 让UI界面上的元素和控制器中的代码产生一定的关系
界面中的元素一般和代码中的属性和方法进行关联
- 默认情况下,UI界面中的元素是不能和方法进行关联的,要想关联UI界面中的元素必须将方法的返回值修改为IBAction
- 若是关联属性,则属性类型前必须添加IBOutlet
可以在故事板界面点击辅助编辑器或快捷键command + option + 回车,即可打开二分界面(即打开与之关联的控制器代码)如下图
- 鼠标点击当前控件不放,按住control键将控件往代码中拖拽
控件代码关联
属性关联
方法关联
可以看到关联之后的属性和方法左边有一个实心的小圆圈,若是我们将关联取消,那么这个小圆圈会变成空心
3.IBOutLet和IBAction
- IBAction几种连线方式
- 1.从”控制器”往”Storyboard”连线
- 2.从”Storyboard”往”控制器”连线
- 3.直接在”Storyboard”中往”Storyboard”上的界面顶部连线
- 4.直接在”Storyboard”中往”Storyboard”上的工具条连线
前四种需要先定义IBAction方法
- 5.不用先定义方法, 直接从”Storyboard”往”控制器”连线
IBAction连线的注意点:
- 1.在Storyboard中拷贝元素的时候需要注意
- 1.1拷贝的同时会将以前的连线一起拷贝
- 1.2一个方法可以很多个控件关联
- 1.3一个控件可以和很多方法进行连线,在开发中, 一般情况下不会这样写
2.如果将按钮关联的方法删除, 运行之后会报一个经典错误
reason: ‘-[ViewController redBtnClick]: unrecognized selector sent to instance 0x7fb4aa618e50’3.IBAction只能作为方法的返回值
IBAction == viod- 4.默认情况下,iOS系统会将UI界面中触发事件的控件当做参数传递进来
- 1.在Storyboard中拷贝元素的时候需要注意
IBOutlet的几种连线方式
- 1.从”控制器”往”Storyboard”连线
- 2.从”Storyboard”往”控制器”连线
- 3.直接在”Storyboard”中往”Storyboard”上的界面顶部连线
- 4.直接在”Storyboard”中往”Storyboard”上的工具条连线
前四种需先定义IBOutlet属性
- 5.不用先定义方法, 直接从”Storyboard”往”控制器”连线
注意点:
- 1.一个控件可以关联多个属性
- 2.一个属性不可以关联多个控件
- 3.在进行属性连线的时候, Xcode会自动帮我们进行类型检测, 如果类型不匹配那么不能连线
- 4.如果将属性和控件连线之后又将属性删除了, 那么只要程序运行就会报一个经典错误
‘[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key lable.’ - 5.注意: 任何UI控件都可以和属性进行连线.但是并不是任何控件都可以和方法连线,只有继承于UIControl的控件才可以连线