ios隐性动画---移动某点到某点

//动画开始和结束都会有delegate回调,具体回调内容可以使用setvalue的方式带参过去!
//[animation setValue:@(index) forKey:@"AnimationViewIndex"];
//另外可以通过下面函数来画出想要的行动轨迹。
//CGPathMoveToPoint、CGPathAddLineToPoint、CGPathAddArc、CGPathAddRect'

//------------------------------------凌乱的分割线----------------------------------------
//如果你只是想简单的移动某点到某点的话,可以使用CABasicAnimation能更简单点

  • (CABasicAnimation *)getMoveAnimation:(CGPoint)tpoint fromPoint:(CGPoint)fpoint index:(int)index type:(NSString *)type {
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
    // 设定动画起始帧和结束帧
    animation.fromValue = [NSValue valueWithCGPoint:fpoint]; // 起始点
    animation.toValue = [NSValue valueWithCGPoint:tpoint]; // 终点
    animation.fillMode = kCAFillModeForwards;
    animation.removedOnCompletion = NO;
    animation.repeatCount = 0;
    animation.delegate = self;
    [animation setValue:@(index) forKey:@"AnimationViewIndex"];
    [animation setValue:type forKey:@"AnimationKeyType"];

    float d = sqrtf ((fpoint.x-tpoint.x)(fpoint.x-tpoint.x)+(fpoint.y-tpoint.y)(fpoint.y-tpoint.y));
    animation.duration = d/500;
    return animation;
    }
    //速度控制函数(CAMediaTimingFunction)
    //1> kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉
    //2> kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开
    //3> kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到达目的地
    //4> kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。

//移动简单的移动外还有启动的动画,只需要修改keyPath值就行
//@"position":位置移动
//@"transform.scale":缩放
//@"transform.rotation.x":x轴旋转
//@"transform.rotation.y":y轴旋转
//@"transform.rotation.z":z轴旋转
//默认以layer中心为圆心,可以通过下面方式修改
//[yourView.layer setAnchorPoint:CGPointMake(0.5, 0.5)];

//组合动画
//
///* 动画组 */
//CAAnimationGroup *group = [CAAnimationGroup animation];
//group.delegate = self;
//group.duration = 5.0;
//group.repeatCount = 1;
//
//// 动画结束后不变回初始状态
//group.removedOnCompletion = NO;
//group.fillMode = kCAFillModeForwards;
//
//// 添加动画
//group.animations = [NSArray arrayWithObjects:animation1, animation2, nil];
//[imageView.layer addAnimation:group forKey:@"move-rotate-layer"];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,617评论 6 30
  • 显式动画 显式动画,它能够对一些属性做指定的自定义动画,或者创建非线性动画,比如沿着任意一条曲线移动。 属性动画 ...
    清风沐沐阅读 2,043评论 1 5
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,168评论 5 13
  • iOS动画篇之CoreAnimation动画 9月 22, 2016发布在Objective-C App如果想被大...
    白水灬煮一切阅读 2,193评论 0 0
  • IOS动画+转场动画 #import "ViewController.h" #import "secondView...
    iOS小开发阅读 928评论 0 1