OC笔记 - UI基础控件(2015.2.3)

来源:互联网 发布:淘宝店铺收藏怎么做 编辑:程序博客网 时间:2024/06/07 18:25

1.UIViewController

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

 

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

 

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

@property(nonatomic,retain) UIView *view;

 

2.退出键盘

resignFirstResponder

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

endEditing

只要调用这个方法的控件内部存在第一响应者,就能退出键盘

 

3.UI控件的基本属性

每一个UI控件都是一个对象

修改UI控件的状态,其实就是修改控件对象的属性

比如修改UILabel显示的文字,就修改UILabel对象的text属性即可

比如修改UIImageView显示的图片,就修改UIImageView对象的image属性即可

不难想到,每一个UI控件肯定都有很多属性,比如:

UIProgressView进度条控件有progress属性(进度值)

UILabel和UITextField都有text属性(显示文字)

… …

虽然,每一个UI控件都有自己的独特属性,但是有些属性是每个UI控件都具备的,比如每一个UI控件都有自己的位置和尺寸、都有自己的父控件、子控件。于是,所有的UI控件最终都继承自UIView,UI控件的公共属性都定义在UIView中,比如:

frame :位置和尺寸

center :中心点位置

 

 

 

比如点击“向上”按钮,让按钮的y值减小即可

- (IBAction)top:(UIButton *)sender {    CGRect btnFrame = self.headBtn.frame;    btnFrame.origin.y -= 10;    self.headBtn.frame = btnFrame;}


下面代码是错误的,OC语法规定:不允许直接修改对象的结构体属性的成员

self.headBtn.frame.origin.y -= 10;


4. autolayout

如果发现通过代码无法修改控件的位置或者尺寸时,应该去掉storyboard里面的autolayout功能,这是自iOS6开始出现的特性。顾名思义,autolayout是用来自动布局的,用来束缚控件的位置和尺寸。去掉这个功能,控件的位置和尺寸就不再有一些固定的束缚。

 

5.动画的实现

简易动画大致有2种方式:

头尾式

[UIView beginAnimations:nil context:nil];//开始动画   [UIView setAnimationDuration:1.5];//动画持续时间/** 需要执行动画的代码 **/[UIView commitAnimations];//结束动画

Block式

UIView animateWithDuration:0.5 animations:^{    /** 需要执行动画的代码 **/}];

6. 通过代码创建控件

#pragma mark - 通过代码创建按钮    //1.创建按钮    UIButton *btn = [[UIButton alloc]init];        //2.将按钮添加到视图中    [self.view addSubview:btn];        //3.设置按钮的frame    btn.frame = CGRectMake(50, 50, 100, 100);        //4.设置背景图片    //4.1.通过文件名加载图片(凡是PNG图片,都不用加拓展名)    UIImage *image = [UIImage imageNamed:@"btn_01"];        //4.2.设置普通状态下的背景图片    [btn setBackgroundImage:image forState:UIControlStateNormal];        //4.3.设置高亮图片    UIImage *image2 = [UIImage imageNamed:@"btn_02"];    [btn setBackgroundImage:image2 forState:UIControlStateHighlighted];        //5.设置文字    [btn setTitle:@"瞅啥瞅" forState:UIControlStateNormal];    [btn setTitle:@"矜持点" forState:UIControlStateHighlighted];        //6.设置文字颜色    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];    [btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];        //7.监听按钮点击    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];    //另一种方式创建按钮    UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeContactAdd];    //设置按钮位置    btn2.center = CGPointMake(50, 50);    //监听按钮点击    [btn2 addTarget:self action:@selector(btn2Click) forControlEvents:UIControlEventTouchUpInside];    //将按钮加入到视图    [self.view addSubview:btn2];




0 0