OC-- UI基础笔记

转载 OC笔记 - UI基础控件(2015.2.3)
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值减小即可

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

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

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

  1. autolayout

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

5.动画的实现

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

头尾式

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

Block式

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

  1. 通过代码创建控件

[objc] view plaincopy

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值