iOS transform动画

transform主要由这几个方法

CGAffineTransformMakeTranslation(平移)
CGAffineTransformMakeScale(缩放)
CGAffineTransformMakeRotation(旋转)
CGAffineTransformIdentity(还原到之前的状态)

另外还有几个叠加 ,大致意思是在一个transfrom基础上再做一次transform
CGAffineTransformTranslate
CGAffineTransformScale
CGAffineTransformRotate

  1. 平移
/* 基于本身的frame移动(只移动一次) */
vew.transform = CGAffineTransformMakeTranslation(15, 15); 
/* 基于本身的frame移动(可以一直移动) */
view.transform = CGAffineTransformTranslate(view.transform, 15, 15);
  1. 旋转
/* 基于本身的位置旋转(只旋转一次) */
view.transform = CGAffineTransformMakeRotation(M_PI_4);
/* 基于本身的位置旋转(可以一直旋转) */
view.transform = CGAffineTransformRotate(view.transform, M_PI_4);

3.缩放(包括放大)

/* 在原来的frame上缩放(只缩放一次) */
view.transform = CGAffineTransformMakeScale(1.5, 1.5);
/* 在缩放后的frame上缩放(可以一直缩放) */
view.transform = CGAffineTransformScale(view.transform, 1.5, 1.5);

缩放或旋转默认都是围绕视图的中心点来进行的,通过 AnchorPoint 的设定,可以改变缩放或旋转围绕的点。这个点被称为锚点。

   view.layer.anchorPoint = newAnchorPoint; // 修改锚点
// 将缩放或旋转围绕的点还原为默认
 view.layer.anchorPoint = CGPointMake(0, 0);

可以配合UIVIew 动画使用

 [UIView animateWithDuration:1 animations:^{
        self.giftView.transform = CGAffineTransformRotate(self.giftView.transform, M_PI_4);
        self.giftView.transform = CGAffineTransformScale(self.giftView.transform, 2, 2);
  }];

你可能感兴趣的:(iOS transform动画)