一、控件的属性
1.frame
1> 表示控件的位置和尺寸(以父控件的左上角坐标为原点(0,0))
2> 修改这个属性,可以调整控件的位置和尺寸
2.center
1> 表示控件的中点,(以父控件的左上角为坐标原点)
2> 修改这个属性,可以调整控件的位置
3.bounds
1> 表示控件的位置和尺寸(以自己的左上角坐标原点,位置永远是(0,0))
2.修改这个属性,只能调整控件的尺寸
4.tag
1> 表示控件的表示
2> 通过不同表示可以区分不同的控件
5.transform
1> 表示控件的变形状态(旋转角度,缩放比例)
2> 创建CGAffineTransform的函数
* CGAffineTransformMakeScale(CGFloat sx, CGFloat,sy)
创建一个x、y方向的缩放比例分别为sx,sy的形变值
* CGAffineTransformMakeRotation(CGFloat angle)
创建一个旋转角度为angle的形变值
* CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)
再形变t的基础上,再进行缩放,x、y方向的缩放比例分别为sx,sy,返回一个新的形变值
* CGAffineTransfomeRotate(CGAffineTransform t,CGFloat angle)
再形变t的基础上,再进行旋转,旋转角度为angle,返回一个新的形变值
二、添加控件到控制器的view
[self.view.addSubview:子控件];
实例:使用UIButton实现图片的上下左右移动和缩放功能
<span style="font-family:Comic Sans MS;">//
// ViewController.h
// IOS_Button
//
// Created by ken on 14-11-1.
// Copyright (c) 2014年 Ken. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *btn;
- (IBAction)RunDirection:(id)sender;
- (IBAction)Reset:(id)sender;
- (IBAction)Rotate:(id)sender;
- (IBAction)Size:(id)sender;
@end</span>
<span style="font-family:Comic Sans MS;">//
// ViewController.m
// IOS_Button
//
// Created by ken on 14-11-1.
// Copyright (c) 2014年 Ken. All rights reserved.
//
#import "ViewController.h"
#define kMoveSize 50 ;
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)btnClick:(id)sender block:(void (^)())block
{
//设置启动动画[需要动画的代码全部需要包含再UIView commitAnimations中]
[UIView beginAnimations:nil context:nil];
//设置动画的秒数为0.7秒[时间随意设置按秒为计算单位]
[UIView setAnimationDuration:0.7];
//block类型
block();
//提交动画/结束动画
[UIView commitAnimations];
}
# pragma Mark 控制按钮的移动
- (IBAction)RunDirection:(id)sender
{
[self btnClick:sender block:^{
CGRect frame = self.btn.frame ;
//根据sender传送的tag选择方向操作
switch ([sender tag]) {
case 1: //上
frame.origin.y -= kMoveSize;
break;
case 2: //右
frame.origin.x += kMoveSize;
break;
case 3: //下
frame.origin.y += kMoveSize;
break;
case 4: //左
frame.origin.x -= kMoveSize;
break;
default:
break;
}
//将新的变量的值再赋还给button
self.btn.frame = frame;
}];
}
# pragma Mark 控制按钮返回原状态
- (IBAction)Reset:(id)sender
{
[self btnClick:sender block:^{
self.btn.transform = CGAffineTransformIdentity; //CGAffineTranformIdentity是设置transform的起始状态
}];
}
# pragma Mark 控制按钮的旋转
- (IBAction)Rotate:(id)sender
{
[self btnClick:sender block:^{
//接受send接受的tag值
int tag = [sender tag]; //id类型的参数不能用点语法[demo.name]只能用对象的get法方
self.btn.transform = CGAffineTransformRotate(self.btn.transform, M_PI_4 * ((10 == tag? -1:1)));
}];
}
# pragma Mark 控制按钮的大小
- (IBAction)Size:(id)sender
{
[self btnClick:sender block:^{
int tag = [sender tag];
if (20 == tag) {
self.btn.transform = CGAffineTransformScale(self.btn.transform, 1.2, 1.2);
}else{
self.btn.transform = CGAffineTransformScale(self.btn.transform, 0.8, 0.8);
}
}];
}
@end
</span>
三、设置按钮属性(使用代码创建视图)
<span style="font-family:Comic Sans MS;">- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 1.创建按钮
// 1.1.创建
UIButton *btn = [[UIButton alloc] init];
NSLog(@"viewdidload----%p", btn);
// 1.2.设置按钮的尺寸和位置
btn.frame = CGRectMake(0, 0, 100, 100);
// 1.3.设置按钮普通状态下的属性
// 1.3.1.设置背景图片
UIImage *normal = [UIImage imageNamed:@"btn_01.png"];
[btn setBackgroundImage:normal forState:UIControlStateNormal];
// 1.3.2.设置文字
[btn setTitle:@"点我啊" forState:UIControlStateNormal];
// 1.3.3.设置文字颜色
[btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
// 1.4.设置按钮高亮状态下的属性
// 1.4.1.设置背景图片
UIImage *high = [UIImage imageNamed:@"btn_02.png"];
[btn setBackgroundImage:high forState:UIControlStateHighlighted];
// 1.4.2.设置文字
[btn setTitle:@"摸我干啥" forState:UIControlStateHighlighted];
// 1.4.3.设置文字颜色
[btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
// 1.5.监听按钮点击
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
// 2.添加按钮到控制器的view中
[self.view addSubview:btn];
// 3.添加文本输入框
UITextField *field = [[UITextField alloc] init];
field.frame = CGRectMake(100, 100, 100, 50);
field.backgroundColor = [UIColor redColor];
// 中点的x
CGFloat centerX = self.view.frame.size.width * 0.5;
CGFloat centerY = self.view.frame.size.height * 0.5;
field.center = CGPointMake(centerX, centerY);
// 设置字体
field.font = [UIFont systemFontOfSize:30];
// [field setBackgroundColor:<#(UIColor *)#>]
[self.view addSubview:field];
}
#pragma mark 监听按钮点击
- (void)btnClick:(UIButton *)btn
{
NSLog(@"点击了按钮");
}
@end</span>