最近在学习动画,这个效果就是一个视图绕某个点旋转,这边以CAlayer为旋转对象,这个layer可以添加到view上面,照样可以实现视图旋转,视图的显示是以layer的形式显示出来的。
工具/原料
ios Xcode
方法/步骤
2
显示的视图如下,就是在屏幕的中间,添加一个红色的layer,下面的操作动画就是对这个layer进行操作
3
接下来创建一个动画 CABasicAnimation *animation = [CABasicAnimation animation]; animation.keyPath = @'transform.rotation.z'; animation.toValue = @(M_PI); animation.duration = 1; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; animation.repeatCount = MAXFLOAT; animation.autoreverses = YES; [layer addAnimation:animation forKey:@'test'];
4
由于动效这个经验显示的效果不好,没办法显示gif的动图,下面只能截取动画的其中一个点的效果。可以复制以上的代码,直接运行看效果
5
上面的实现步骤是layer绕着Z轴旋转,也就是视图的中间位置的点旋转,那么怎么改变绕着某一个点旋转呢?那么就要改变anchorPoint描点。 layer.anchorPoint = CGPointMake(1, 1);这个是说,绕着右下角的最远端进行旋转,也就是position是在 (x,y),中间位置就是(x/2,y/2) layer.anchorPoint = CGPointMake(0.5, 0.5);