一、知识点总结

(1)其实,每当显示一个新界面时,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏UIView,UIViewController负责管理这个UIView

UIViewController就是UIView的大管家,负责创建、显示、销毁UIView,负责监听UIView内部的事件,负责处理UIView与用户的交互

UIViewController内部有个UIView属性,就是它负责管理的UIView对象 :

@property(nonatomic,retain) UIView*view;

(2)UIView只负责对数据的展示,采集用户的输入、监听用户的事件等。

其他的操作比如:每个UIView的创建、销毁、用户触发某个事件后的事件处理程序等这些都交给UIViewController来处理。

(3)综合分析,可以得出程序的简单运行流程:

-1.读取Main.storyboard文件

-2.创建箭头所指的CZViewController对象

-3.根据storyboard文件中描述创建CZViewController的UIView对象

-4.将UIView对象显示到用户眼前

(4)

-1.IBAction和IBOutlet究竟有什么作用?

IBAction相当于void,但是能拖线。IBOutlet保证属性可以拖线。

-2.还有其他拖线方式么?

点击控件右键连线

按住control拖线(从控件到代码、从代码到控件)

属性与方法代码写好后,打开ViewControllerScene,选择ViewController右键将对应的方法拖到控件上。

-3.Storyboard文件中箭头的含义?

程序的入口.新建一个ViewController后,设置IsInitial ViewController属性来让当前ViewController为默认启动项。

-4.如何更换storyboard文件?

项目 -> General->DeploymentInfo-> 改变Main.storyboard

-5.如何让文本框只能输入数字?

调出数字键盘(Number Pad)

-6.如何退出键盘?

开发人员自己写代码退出。

(1.[第一响应者 resignFirstResponder];2. [self.view endEditting:YES])

-7.CompanyIdentifier(公司的唯一标识)和BundleIdentifier(app的唯一标识)的作用

BundleIdentifier对于中文都是-

-9.模拟器还有哪些功能?

查看模拟器的菜单。

window 菜单调整大小

调试 设置位置

硬件 -> 设备 来切换模拟器、旋转等

回到主界面、退出某个程序、卸载某个程序

(5)

—IBAction

从返回值角度上看,作用相当于void

只有返回值声明为IBAction的方法,才能跟storyboard中的控件进行连线

—IBOutlet

只有声明为IBOutlet的属性,才能跟storyboard中的控件进行连线

二、图形解析

(1)设置程序启动时加载的storyboard

如下图所示:

hispark 界面开发 界面开发技术_控件

(2)设置UITextField的键盘类型:如下图

hispark 界面开发 界面开发技术_事件处理_02

三、常见问题:

1.拖线后@property代码、事件处理方法被删除了。

错误信息:this class is not key value coding-compliant for thekey resultLabel.

2.引用控件的属性、事件处理方法都写在.m文件的“类扩展”,保证封装性。

3.

resignFirstResponder

当叫出键盘的那个控件(第一响应者)调用这个方法时,就能退出键盘

endEditing

只要调用这个方法的控件内部存在第一响应者,里面所有的子控件就都能分别退出键盘