UIday02

来源:互联网 发布:好看的纪录片 知乎 编辑:程序博客网 时间:2024/05/21 06:52

一、viewDidLoad

  1.1是什么?

是UIViewController类中定义的方法

1.2在什么时候调用?

在VC所控制的界面(View)第一次需要显示出来的时候,需要加载VC,等加载VC后,自动调用此方法。

1.3干什么

在此方法中设置界面的初始显示

1.4注意

一般此方法的第一步会调用父类的方法,目的是让父类中的设置也起作用。

 

二、控件(Control)

2.1什么是控件

严格来说,凡是UIControl类及子类的对象,才叫控件,控件会触发事件。严格来说UIButton是控件,UILabel不是控件。(严谨说)

一般来说,口头上的经常能在界面上看见的东西,都叫控件。(不正确)

2.2  控件(UIControl)和视图(View)的关系

控件就是视图的一种

UIController是UIView的子类

 

三、按钮控件(UIButton)

操作步骤“

3.1创建按钮对象

使用工厂方法,UIButtonTypeSystem

3.2设置相关的属性

title按钮上显示的内容

state按钮的状态

[button setTile:…forState:…];

3.3 加入到父视图中

3.4添加事件(Event)

addTarget:action:forControlEvents:

target:目标

当按钮出发了事件时,向哪个对象发送消息。

经常使用self,向当前对象发送消息。

action:动作

向target对象发送什么消息

events:事件

当用户出发了按钮对象的哪种事件时,才向target发送action消息。

UIControlEventTouchUpInside手指在按钮上按下并抬起时,触发此事件。

UIControlEventTouchDown 手指在按钮上按下时触发此事件。

注意:自定义的视图内容,要添加到自定义的视图控制器中,所以自定义一个类继承UIViewController。

 

四、视图控制器的创建方式

4.1代码的创建方式(上)code

4.2图形化界面的创建方式 xib(IOS5.0前)/storyboard(IOS5.0之后)

4.3执行过程

main.m->Appdelegate->appliction…->***[[TRViewController alloc]initWithNib…]

4.4操作步骤

1>拖拽(show the object Library)相应的视图或控件到xib文件中。(xib自动创建一个相应的对象)

2>连线(ctrl+鼠标左键连线,或直接使用右键连线)

IBOutlet

使用类似于组合的模式,创建属性对象。(Xib)

是一种属性,这种属性指向了xib中的一个对象。

IBAction

是一种方法,这个方法连接到了xib中的一个控件,当用户触发了这个空间的事件方法,会调用此方法。

4.5 Interface Builder(IB)

1>是什么

是一个工具软件,以前是独立的,从xcode4开始集成到xcode中了。

2>干什么

帮助程序员设置和构造界面用的,可以不写代码或少些代码来构建界面,从而提高我们的开发效率,所见即所得。

3>工作原理

将界面上需要的控件(或视图)的创建、属性的设置、之间的关系等都保存到一个xml文件中,程序运行时,从xml中读取所有的控件信息、配置,自动创建这些对象,自动加入到父视图中。

4>一些文件

.doc(office2003以前)                   .docx(office2003以后)

.nib                                                    .xib

VC类->*.h  *.M.                     

IB-> *.xib

4.6连线常见问题

1>xib中的视图或控件与类中的属性关联错误

删除类中的属性,并不会删除连线关系(老师)

'NSUnknownKeyException', reason: '[<TRViewController 0xa8509b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myLabel.'

2>xib中的控件与类的时间方法关联错误

删除(修改)类中的方法,并不会删除或修改连线关系(老师)

'NSInvalidArgumentException', reason: '-[TRViewController onClick]: unrecognized selector sent to instance 0x8c33da0'

解决:删除原有连线,重新连线。

 

3>自己创建的视图控制器中的根视图,默认是不会连线的。

'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "TRViewController" nib but the view outlet was not set.'

解决:自己连线。

 

五、详细操作

5.1步骤(视图)

a.创建一个视图控制器,并创建相应的xib文件。

b.将视图控制器设置成根视图控制器(rootVC)。

c.在show the object library中,拖拽相应的视图或控制到父视图中。

d.按住鼠标右击连接相应的视图连线到相应的类(.m文件)的@interface部分。

e.如果需要视图加载的时候,初始化子视图,应该在viewDidLoad方法,通过属性进行修改。

注意:相应的xib中的视图控制器类型要与视图控制器的类的类型相匹配。

5.2步骤(事件方法)

a.创建一个视图控制器,并创建相应的xib文件。

b.将视图控制器设置成根视图控制器(rootVC)。

c.在show the object library中,拖拽相应的视图或控制到父视图中。

d.在xib中,右击相应的控件连线到相应的类中(试图控制器的.m文件implemention部分),会弹出一个对话框,设置相应的参数,会自动生成相应的事件方法。

5.3 IBAction对应的事件方法的参数

任何一个控件产生事件时,如果调用一个方法,且这个方法有参数,就会将控件自身传给这个参数。(事件源)

默认情况下,事件源的参数是id类型,使用前必须进行类型转换。

总结使用控件四个步骤:

1.创建控件

2.设置属性

3.添加事件方法

4.添加到父视图

 

六、控件S

6.1UIStepper  控件

重要属性:

.value 当前值

.stepValue 步进值 (每一次增加或减少多少)

.minimumValue 最小值

.maxmumValue最大值

最常见的事件

valueChanged(stepperValueChanged)

练习:改变UIStepper的初始值,默认为20.

取值范围是-50~+50之间,每次步长为5,显示在label中。

6.2 UISlider 滑块控件

重要的属性:

.value 当前值

.minimumValue 最小值

.maxmumValue 最大值

最常用的事件

valueChanged

6.3 Swtich 开关控件

  最重要属性:

.on:BOOL(getter:isOn)

最常用事件:

valueChanged

 

//指定getter方法为isOn

@property(nonatomic,getter=isOn)BOOL on;

0 0