一个基本ios图标控件的操作,实现button 的一个上下左右放大缩小旋转的基本操作
#import "ViewController.h"
@interface ViewController ()
-(IBAction)move:(UIButton *)btn;
-(IBAction)big;
-(IBAction)small;
-(IBAction)leftRotata;
-(IBAction)rightRotata;
//头像
@property (nonatomic,weak) IBOutlet UIButton *head;
@end
@implementation ViewController
#pragma mark 移动
-(void)move:(UIButton *)btn{
//1.取出原来的属性
CGRect tempF = self.head.frame;
//2,修改原来的属性
CGFloat delta = 10;
switch (btn.tag) {
case 1://上
tempF.origin.y -= delta;
break;
case 2://下
tempF.origin.y += delta;
break;
case 3://左
tempF.origin.x -= delta;
break;
case 4://右
tempF.origin.x += delta;
break;
}
//3,重新复制
self.head.frame = tempF;
}
#pragma mark 放大
-(IBAction)big{
//取出原来的属性;
CGRect tempf = self.head.frame;
//改变size属性
tempf.size.height += 10;
tempf.size.width += 10;
//赋值
self.head.frame = tempf;
}
#pragma mark 缩小
-(IBAction)small{
//取出原来的值
CGRect tempFrame = self.head.frame;
//改变属性
tempFrame.size.height -= 10;
tempFrame.size.width -= 10;
//把临时frame赋值回去
self.head.frame = tempFrame;
}
#pragma mark 左旋转
-(IBAction)leftRotata{
//1取得头像
UIButton *head = (UIButton *)[self.view viewWithTag:10];
//2想左旋转45度
//角度是正数:顺时针 角度是负数:逆时针
//head.transform = CGAffineTransformMakeRotation(-M_PI_4);
head.transform = CGAffineTransformRotate(head.transform, -M_PI_4);
}
#pragma mark 右旋转
-(IBAction)rightRotata{
//1取得头像
UIButton *head = (UIButton *)[self.view viewWithTag:10];
//2想左旋转45度
//角度是正数:顺时针 角度是负数:逆时针
//head.transform = CGAffineTransformMakeRotation(-M_PI_4);
head.transform = CGAffineTransformRotate(head.transform, M_PI_4);
}
- (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.
}
@end
效果图
2 transform的应用是可以改变 位置/大小/旋转
3 使用transform需要给空间添加一个tag。来获取到控件
4 transfrom中的两个方法
第一个只做一次旋转,一次执行
CGAffineTransformMakeRotation(-M_PI_4);
第二个方法将控件的transform再次传道参数的方法中,再次赋值,反复使用
CGAffineTransformRotate(head.transform, M_PI_4);
5 iOS7之后中使用 use auto layout会让放大缩小失效