一、創建一個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 - 簡書