1. 程式人生 > >iOS開發:旋轉、縮放、平移

iOS開發:旋轉、縮放、平移

一、建立一個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));
}


參考文章: