您的位置:首页 > 移动开发 > IOS开发

iOS 对象沿着指定路径进行动画

2017-01-03 14:29 323 查看
以下方法在自定义view的类里面实现,可放在自定义函数中自行控制触法。也可放在drawRect或layoutSubviews里面让view在显 示时触法。但推荐放在自定义view中触发,因为这样才可以做到自行控制,并保证同时只有一个在运行,否则会因为view的改变导致重绘,导致同时执行多 个相同的动画,会影响效果和耗费内存。

让view对象沿指定的路径进行动画的方法:

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
//在动画设置一些变量
pathAnimation.calculationMode = kCAAnimationPaced;
//我们希望动画持续
//如果我们动画从左到右的东西——我们想要呆在新位置,
//然后我们需要这些参数
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO;
pathAnimation.duration = 10;//完成动画的时间
//让循环连续演示
pathAnimation.repeatCount = 10;
//设置的路径动画
CGMutablePathRef curvedPath = CGPathCreateMutable();
CGPathMoveToPoint(curvedPath, NULL, 10, 10);//起始位置
CGPathAddQuadCurveToPoint(curvedPath, NULL, 10, 450, 310, 450);
CGPathAddQuadCurveToPoint(curvedPath, NULL, 310, 10, 10, 10);
//现在我们的路径,我们告诉动画我们想使用这条路径,那么我们发布的路径
pathAnimation.path = curvedPath;
CGPathRelease(curvedPath);

UIImageView *circleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1.jpg"]];
circleView.frame = CGRectMake(1, 1, 40, 40);
[self.view addSubview:circleView];
//添加动画circleView——一旦你添加动画层,动画开始
[circleView.layer addAnimation:pathAnimation
forKey:@"moveTheSquare"];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐