一、创建一个UIView
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic, strong) UIView * myView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor darkGrayColor];
[self createView];
}
-(void)createView{
UIView * myView = [[UIView alloc] initWithFrame:CGRectMake(40, 40, 200, 200)];
myView.backgroundColor = [UIColor redColor];
self.myView = myView;
[self.view addSubview:myView];
UIView * greenView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
greenView.backgroundColor =[UIColor greenColor];
[self.myView addSubview:greenView];
}
二、UIView的旋转
创建一个button
-(void)createButton1{
UIButton * myBtn1 = [UIButton buttonWithType:UIButtonTypeCustom];
myBtn1.frame = CGRectMake(40, 300, 100, 40);
[myBtn1 setTitle:@"旋转" forState:UIControlStateNormal];
[myBtn1 addTarget:self action:@selector(rotationButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myBtn1];
}
旋转事件
//旋转
- (void)rotationButtonPressed:(id)sender{
#if 0
//每次旋转都是已原始尺寸为基准
self.myView.transform = CGAffineTransformMakeRotation(M_PI_4);
#else
//每次旋转都是以上次旋转后的尺寸为基准
self.myView.transform = CGAffineTransformRotate(self.myView.transform, M_PI_4);
#endif
}
三、UIView的缩放
创建一个button
-(void)createButton2{
UIButton * myBtn2 = [UIButton buttonWithType:UIButtonTypeCustom];
myBtn2.frame = CGRectMake(40, 350, 100, 40);
[myBtn2 setTitle:@"缩放" forState:UIControlStateNormal];
[myBtn2 addTarget:self action:@selector(scaleButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myBtn2];
}
缩放事件
//缩放
- (void)scaleButtonPressed:(id)sender{
#if 0
//每次缩放都是以原始尺寸为基准
self.myView.transform = CGAffineTransformMakeScale(0.5, 0.5);
#else
//每次缩放都是以上次缩放后的尺寸为基准
self.myView.transform = CGAffineTransformScale(self.myView.transform, 0.5, 0.5);
#endif
}
四、UIView的平移
创建一个button
-(void)createButton3{
UIButton * myBtn = [UIButton buttonWithType:UIButtonTypeCustom];
myBtn.frame = CGRectMake(40, 400, 100, 40);
[myBtn setTitle:@"平移" forState:UIControlStateNormal];
[myBtn addTarget:self action:@selector(moveButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myBtn];
}
平移事件
//平移
- (void)moveButtonPressed:(id)sender{
#if 0
//每次平移都是以原始尺寸为基准
self.myView.transform = CGAffineTransformMakeTranslation(50, 50);
#else
//每次平移都是已上次平移后的尺寸为基准
self.myView.transform = CGAffineTransformTranslate(self.myView.transform, 50, 50);
#endif
}
五、UIView的复位
创建一个button
-(void)createButton4{
UIButton * myBtn = [UIButton buttonWithType:UIButtonTypeCustom];
myBtn.frame = CGRectMake(40, 450, 100, 40);
[myBtn setTitle:@"复位" forState:UIControlStateNormal];
[myBtn addTarget:self action:@selector(defultButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:myBtn];
}
复位事件
//复位
-(void)defultButtonPressed:(id)sender{
self.myView.transform = CGAffineTransformIdentity;
//判断视图是否处于原始位置
NSLog(@"isDefult = %d",CGAffineTransformIsIdentity(self.myView.transform));
}
参考文章:
1、iOS CGAffineTransform属性 - 程序猿 - 博客频道 - CSDN.NET
2、CGAffineTransformMakeScale & CGAffineTransformScale - 简书