1. CGAffineTransformMakeTranslation
通过指定x, y值来创建一个平移矩阵
2. CGAffineTransformTranslate
在已存在的矩阵中使用平移
3. CGAffineTransformMakeRotation
通过指定角度来创建一个旋转矩阵
4. CGAffineTransformRotate
在已存在的矩阵中使用旋转
5. CGAffineTransformMakeScale
通过指定x, y缩放因子来创建一个缩放矩阵
CGAffineTransformScale
在已存在的矩阵中使用缩放
======================================================创建
CGAffineTransform transform = CGAffineTransformMakeRotation(M_2_PI);
view都有CGAffineTransform 这个属性
@property(nonatomic) CGAffineTransform transform; // default is CGAffineTransformIdentity. animatable
使用
CGAffineTransform transform = CGAffineTransformMakeRotation(M_2_PI);
v.transform = transform;
[UIView animateWithDuration:0.3 animations:^{
//组合叠加
CGAffineTransform transform1 = v.transform;
CGAffineTransform transform2 = CGAffineTransformRotate(transform1, M_2_PI);
CGAffineTransform transform3 = CGAffineTransformScale(transform2, 0.8, 0.8);
CGAffineTransform transform4 = CGAffineTransformTranslate(transform3, 10, 10);
v.transform = transform4;
}];
一下是一些基本的用法demo
v = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 300)];
[v setBackgroundColor:CAREMAINCOLOR];
[self.view addSubview:v];
NSTimer *tmer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(animates) userInfo:nil repeats:YES];
[tmer fire];
-(void)animates
{
/*
CGAffineTransformMakeTranslation
通过指定x, y值来创建一个平移矩阵
CGAffineTransformTranslate
在已存在的矩阵中使用平移
CGAffineTransformMakeRotation
通过指定角度来创建一个旋转矩阵
CGAffineTransformRotate
在已存在的矩阵中使用旋转
CGAffineTransformMakeScale
通过指定x, y缩放因子来创建一个缩放矩阵
CGAffineTransformScale
在已存在的矩阵中使用缩放
*/
// ========================================================
if (v.height==300) {
[UIView animateWithDuration:0.5 animations:^{
[v setFrame:CGRectApplyAffineTransform(CGRectMake(v.frame.origin.x, v.frame.origin.y, v.frame.size.width,0), CGAffineTransformMakeTranslation(0, v.frame.size.height))];//v高度变0 同时移动y 到 v高度的距离==》向下收起的动画效果
//code
}];
}else
{
[UIView animateWithDuration:0.5 animations:^{
[v setFrame:CGRectApplyAffineTransform(CGRectMake(v.frame.origin.x, v.frame.origin.y, v.frame.size.width, 300), CGAffineTransformMakeTranslation(0, -300))];//v高度变300 同时移动y 到 负v高度的距离==》向上展示的动画效果
//code
}];
}
// ========================上一个状态下移动x-->10,y-->0================================
// [UIView animateWithDuration:0.5 animations:^{
// v.transform = CGAffineTransformTranslate(v.transform,10,0);
// }];
// =======================上一个状态的基础上旋转M_PI/3=================================
// [UIView animateWithDuration:0.5 animations:^{
// v.transform = CGAffineTransformRotate(v.transform,M_PI/3);
// }];
// =======================原始状态基础上旋转M_PI/3=================================
// [UIView animateWithDuration:0.5 animations:^{
// v.transform = CGAffineTransformMakeRotation(M_PI/3);
// }];
// =======================原始状态的基础上x,y缩小到0.8=================================
// if (v.width>320||v.height>400) {
// [UIView animateWithDuration:0.5 animations:^{
// v.transform = CGAffineTransformScale(v.transform,0.8,0.8);
// }];
// }else
// {
// [UIView animateWithDuration:0.5 animations:^{
// v.transform = CGAffineTransformScale(v.transform,1.2,1.2);
// }];
// }
// =======================上一个状态的基础上x,y缩小到0.8=================================
// [UIView animateWithDuration:0.5 animations:^{
// v.transform = CGAffineTransformScale(v.transform,0.8,0.8);
// }];
// =======================原始状态的基础上x,y缩小到0.8=================================
// [UIView animateWithDuration:0.5 animations:^{
// v.transform = CGAffineTransformMakeScale(0.8,0.8);
// }];
}