iOS開發:旋轉、縮放、平移
阿新 • • 發佈:2019-01-28
一、建立一個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));
}
參考文章: