CAShapLayer的应用和coreAnimation

画勾:
CAShapLayer给定一个路径它就能跟着你的路径画出一个你想要的图形

CAAnimation——速度控制函数

速度控制函数(CAMediaTimingFunction) 

kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉

kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开

kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到达目的地

kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。这个是默认的动画行为。

 

设置动画的执行节奏

anim.timingFunction= [CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionLinear];
- (void)drawPic:(CGRect)rect context:(CGContextRef)context {
    
    
    
    _shap = [CAShapeLayer layer];
    CGPoint point[3] = {{150,200},{200,250},{300,150}};
    
    CGMutablePathRef mu = CGPathCreateMutable();
    
    CGPathAddLines(mu, nil, point, 3);
    
    _shap.path  = mu;

    _shap.strokeStart = 0;
    _shap.strokeEnd = 1;
    _shap.fillColor = [UIColor clearColor].CGColor;
    _shap.strokeColor = [UIColor redColor].CGColor;
    _shap.lineWidth = 13;
    [self.layer addSublayer:_shap];
    
    
    //动画
    CABasicAnimation *base = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
    base.fromValue =  @(0);
    base.toValue = @(1);
    base.duration = 2;
    base.repeatCount = CGFLOAT_MAX;
    
//    base.fillMode = @"forwards";
//    base.removedOnCompletion = NO;
    
    [_shap addAnimation:base forKey:@"d"];
    
    CGPathRelease(mu);
    
}

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

推荐阅读更多精彩内容

  • Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低...
    ShanJiJi阅读 1,581评论 0 20
  • UIBezierPath Class Reference 译:UIBezierPath类封装了Core Graph...
    鋼鉄侠阅读 1,766评论 0 3
  • 小李2007年9月接手了一个已经开发接近尾声的项目,项目也不大,前期需求、开发、测试做的也比较好、比较规范,接手的...
    小声讲故事阅读 501评论 0 1
  • “可能爱上你,是我今生犯的最大的错误。” 如今的A城,风雪弥漫,天也愈加惨白,窗户上已结满窗花,罩的室内光线略显昏...
    狐囚阅读 816评论 0 2
  • 我们之所以善良,不是为了回报,只是因为在做对的事。因为善良是本能,是武器,更是人性。即便好人难做,我们依然要守住这...
    Lzr_2017阅读 87评论 0 3