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));
}



参考文章:

1、iOS CGAffineTransform属性 - 程序猿 - 博客频道 - CSDN.NET

2、CGAffineTransformMakeScale & CGAffineTransformScale - 简书



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值