iOS开发transform的使用
//
// ViewController.m
// 18-transform的使用
#import "ViewController.h"
@interface ViewController ()
@property(nonatomic,assign)CGFloat ty;
- (IBAction)up:(id)sender;
- (IBAction)big;
- (IBAction)rotate;
- (IBAction)reset;
@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.
}
/**
向上向下向左向右
@param sender <#sender description#>
*/
- (IBAction)up:(id)sender {
// NSLog(@"up");
//通过父控件拿到按钮
//可以通过父类拿到子类
UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];
//2 通过fransform让头像向上走
//tx 水平方向移动的范围
//ty 竖直方向移动的范围
/**
CGAffineTransformMakeTranslation
使用这个方法进行设置,每次变化都是以原始值进行
变化的
@param 0 <#0 description#>
@param -10 <#-10 description#>
@return <#return value description#>
*/
//方法1: 开辟成员变量耗性能
// self.ty-= 10;
// headBtn.transform = CGAffineTransformMakeTranslation(0, self.ty);
/**
方法2:
CGAffineTransformTranslate
使用这个方法每次都是以CGAffineTransform 值进行变化的
@param t#> <#t#> description#>
@param tx#> <#tx#> description#>
@param ty#> <#ty#> description#>
@return <#return value description#>
*/
headBtn.transform = CGAffineTransformTranslate(headBtn.transform, 0, -10);
}
//放大 缩小
- (IBAction)big {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];
headBtn.transform = CGAffineTransformScale(headBtn.transform, 1.5, 1.5);
[UIView commitAnimations];
}
/**
旋转
*/
- (IBAction)rotate {
UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];
headBtn.transform = CGAffineTransformRotate(headBtn.transform, M_PI_4);
}
/**
复位
*/
- (IBAction)reset {
UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];
headBtn.transform = CGAffineTransformIdentity;
}
@end