关闭

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

标签: iOS动画沿路线移动CAKeyframeAnimation
1589人阅读 评论(0) 收藏 举报
分类:
以下方法在自定义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"];

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

iOS开发(OC)——路径动画

CAShapeLayer *shapeLayer=[CAShapeLayer layer]; shapeLayer.strokeColor=[UIColor cyanColor].CGColor...
  • liumude123
  • liumude123
  • 2016-12-29 12:22
  • 262

iOS-利用UIBezierPath和CAAnimation制作路径动画

继上篇的心跳动画,今天实现一个根据心跳路径实现一个路径动画,让某一视图沿着路径进行运动.核心代码1-首先通过 drawRect 绘制心形路径- (void)drawRect:(CGRect)rect ...
  • Mazy_ma
  • Mazy_ma
  • 2017-02-16 10:47
  • 3172

iOS之地图的使用和实时描绘运动轨迹

详细讲解了地图的使用在真机情况下可能出现的各种情况,地图的定位、位移功能,更好的帮助你进行地图功能的开发,并简单的实现了实时绘制轨迹的功能。
  • wuzesong
  • wuzesong
  • 2016-07-14 11:43
  • 7655

iphone动画物体沿圆形轨迹移动并同时改变大小

  • 2012-08-23 15:00
  • 34KB
  • 下载

UIButton自定义路径动画

之前看了一个别人做的汉堡动画的动效,非常有意思,然后在花瓣网上找了一个差不多的,自己尝试着做了一下。花瓣网上找的动效 最终代码实现的效果 https://github.com/BearRan/Ch...
  • xiongbaoxr
  • xiongbaoxr
  • 2016-03-14 23:53
  • 4787

iOS学习之UI初级————CGAffineTransform坐标系统变换以及UIView的属性动画

浅谈编者对CGAffineTransform坐标系统变换以及UIView的属性动画的认识和理解 坐标系统变换通过transform属性来改变 ·CGAffineTransformScale...
  • Lerryteng
  • Lerryteng
  • 2016-03-30 22:47
  • 1771

iOS 利用mask layer 使view中扣掉一块露出下边的view

#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width #define SCREEN_HEIGHT [[UIScreen main...
  • Dwarven
  • Dwarven
  • 2015-01-07 14:33
  • 18759

小球的自由落体动画

以下是一个小球的自由落体动画,比较笨重的实现方法。还有更好的方法后面再上。。全代码 + gif   记录一下 #import "ViewController.h" @interface ...
  • a543438338
  • a543438338
  • 2016-05-05 18:00
  • 578

UIGravityBehavior-动画效果:重力自由落体

1。重力行为 2。UIDynamicAnimator             初始化:- (instancetype) initWithReferenceView : (UIView *) view ...
  • berained
  • berained
  • 2013-12-04 15:46
  • 3066

iOS简单动画效果:闪烁、移动、旋转、路径、组合、

#define kDegreesToRadian(x) (M_PI * (x) / 180.0) #define kRadianToDegrees(radian) (radian*180.0)/(...
  • CloverZhu
  • CloverZhu
  • 2016-10-28 16:17
  • 5151
    个人资料
    • 访问:101872次
    • 积分:1620
    • 等级:
    • 排名:千里之外
    • 原创:65篇
    • 转载:8篇
    • 译文:0篇
    • 评论:13条
    最新评论