IOS transform的使用(移动,放大,旋转)

@interface ViewController ()
- (IBAction)up;
- (IBAction)big ;
- (IBAction)leftRotate ;
@property (nonatomic,assign)CGFloat ty;

@end

@implementation ViewController



//向上移动,transform以第一次状态为准,作变化
- (IBAction)up {
    
    //取得头像按钮
    UIButton *head=(UIButton *)[self.view viewWithTag:10];

    
    //每次向上移动100的距离
//    self.ty-=50;
//    head.transform=CGAffineTransformMakeTranslation(0, self.ty);
    //在head.transform的基础上移动距离。
    head.transform=CGAffineTransformTranslate(head.transform, 0, -100);
}


//放大控件,transform以第一次状态为准,作变化
- (IBAction)big {
    
    //取得头像按钮
    UIButton *head=(UIButton *)[self.view viewWithTag:10];
    
    
    //增大:输入的值是按钮的 缩放比例
    //    self.ty-=50;
    //    head.transform=CGAffineTransformMakeScale(0, self.ty);
    //在head.transform的基础上放大控件。
    head.transform=CGAffineTransformScale(head.transform, 1.5, 1.5);
}

//向左旋转控件,transform以第一次状态为准,作变化
- (IBAction)leftRotate {
    
    //取得头像按钮
    UIButton *head=(UIButton *)[self.view viewWithTag:10];
    
    //向左旋转 45°(M_PI_4)
     //    45°/180°
    //角度是正数:顺时针,角度是负数:逆时针
    //head.transform=CGAffineTransformMakeRotate(M_PI_4);
    
    //在head.transform的基础上左旋转控件。
    head.transform=CGAffineTransformRotate(head.transform, -M_PI_4);
}
@end
原文地址:https://www.cnblogs.com/liuwj/p/6411748.html