多语言展示
当前在线:176今日阅读:176今日分享:34

绕着某个点旋转

最近在学习动画,这个效果就是一个视图绕某个点旋转,这边以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);

推荐信息