重点:translate 能改变控件的大小位置和旋转
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *head;
- (IBAction)leftRotate:(id)sender;
- (IBAction)up;
- (IBAction)scaleSize:(id)sender;
@end
@implementation ViewController
- (IBAction)up {
/**
利用控件的transform属性来控制我们的控件
1、第一种创建
CGAffineTransformMakeTranslation:transform是形变属性,默认只会修改一次,它只会在原来状态下叠加的,那怎么改变?
改变传入值,让传入值叠加就能做到每次点击改变
2、第二种创建
CGAffineTransformTranslate
*/
//1、取得头像
UIButton *head2 = (UIButton *)[self.view viewWithTag:10];
//2、得到transform
//a、第一种创建不推荐,是形变
//head2.transform = CGAffineTransformMakeTranslation(0, -100);//这种创建是原来状态为基础的
//b、第二种穿创建
//说明CGAffineTransformTranslate这个方法不是创建,而是在已经创建的基础上修改我们的transform
head2.transform = CGAffineTransformTranslate(head2.transform, -20, -20);
}
- (IBAction)leftRotate:(id)sender
{
//1、得到View
UIButton *head3 = (UIButton *)[self.view viewWithTag:10];
//2、左旋转45
//特别说明:这里是弧度制,平时我们的45度是角度制,但是这是弧度制,比如(PI)就是180度,M_PI_4这是四分之一派,45度
//正数是正时针
//当然这里对应的也是初始位置
//head3.transform = CGAffineTransformMakeRotation(M_PI_4);
//根据上次位置获取
head3.transform = CGAffineTransformRotate(head3.transform, M_PI_4);
}
- (IBAction)scaleSize:(id)sender {
//缩放
UIButton *head4 = [self.view viewWithTag:10];
//这里是算倍数的,比如下面1.5,就是原来的1.5倍
head4.transform = CGAffineTransformScale(head4.transform, 1.5, 1);
}
@end