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;
- UIday02
- UIday02~04:UITextField UIButton UIdelegate 自定义视图 容器视图控制器
- 第五章 数和二叉树
- myeclipse console窗口无法显示错误信息
- Android小知识4
- hdu 5124 lines (线段树+离散化)
- 一般物体检测--Binarized Normed Gradients for Objectness Estimation at 300fps
- UIday02
- 11.25Java基础入学
- 信号量_Semaphore与互斥_Mutex
- 第十四周项目六 阅读程序(7、8、9)
- IOS开发---OC语言-⑬成员变量作用域
- EF入门
- C++与C语言动态存储分配的区别
- HBase的rowkey设计
- log4j基本使用