ios开发 UI基础入门知识

来源:互联网 发布:诊所处方软件 编辑:程序博客网 时间:2024/05/29 17:19

1. IBAction的参数
========================================
- (IBAction)left:(UIButton *)button

1>
OC中,绝大多数的控件监听方法的第一个参数就是控件本身
2>
默认连线时的参数类型是id
3>
如果要在监听方法中,方便控件的使用,可以在连线时或者连线后,修改监听方法的参数类型

2.
修改对象的结构体成员
========================================
OC中,不允许直接修改对象结构体属性成员,但是允许修改对象结构体属性


修改结构体属性的成员方法如下:

1>
使用临时变量记录对象的结构体属性
2>
修改临时变量的属性
3>
将临时变量重新设置给对象的结构体属性

3.
在程序开发中需要避免出现魔法数字(Magic Number)
========================================
使用枚举类型,可以避免在程序中出现魔法数字

1>
枚举类型实质上就是一个整数,其作用就是用来替代魔法数字
2>
枚举类型中,指定了第一个整数之后,后面的数字会递增

4. frame & bounds & center
========================================
1> frame
可以修改对象的位置和尺寸
2> bounds
可以修改对象的尺寸
3> center
可以修改对象的位置

5.
首尾式动画
========================================
// beginAnimations
表示此后的代码要参与到动画中
[UIView beginAnimations:nil context:nil];
// setAnimationDuration
用来指定动画持续时间
[UIView setAnimationDuration:2.0];

self.headImageView.bounds = rect;
......

// commitAnimations
,将beginAnimation之后的所有动画提交并生成动画
[UIView commitAnimations];

6. transform
属性
========================================
OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度

常用的创建transform结构体方法分两大类

1>
创建基于控件初始位置的形变
CGAffineTransformMakeTranslation
CGAffineTransformMakeScale
CGAffineTransformMakeRotation

2>
创建基于transform参数的形变
CGAffineTransformTranslate
CGAffineTransformScale
CGAffineTransformRotate

补充:
OC中,所有跟角度相关的数值,都是弧度值,180° =M_PI
正数表示顺时针旋转
负数表示逆时针旋转

提示:由于transform属性可以基于控件的上一次的状态进行叠加形变,例如,先旋转再平移
因此在实际动画开发中,当涉及位置、尺寸形变效果时,大多修改控件的transform属性,
而不是frameboundscenter

7.
使用代码创建控件
========================================
OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力!

使用代码创建控件的步骤如下:

1>
使用控件对应类创建对象
2>
设置对象属性:frame\color\text\image\backgroundImage……
3> [self.view addSubview:btn];
将控件添加到视图

设置控件监听方法的示例代码如下:
[btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

提示:
1> addTarget
方法定义在UIControl类中,这意味着可以给所有继承自UIControl类的对象添加监听方法
2>
监听方法的第一个参数就是对象本身
3>
监听方法的第二个参数是监听控件的事件

8. viewDidLoad
========================================
viewDidLoad
是视图加载完成后调用的方法,通常在此方法中执行视图控制器的初始化工作

viewDidLoad方法中,一定不要忘记调用父类的方法实现!
[super viewDidLoad];

0 0
原创粉丝点击