zoukankan      html  css  js  c++  java
  • 一个扇形的动画效果

    用cashapelayer和core animation实现的一个扇形的动画效果。

    直接贴代码 可以让cashapelayer跟着动画里面的一个path动态的绘图

    -(void)addarcanimation
    {
        CAShapeLayer *linelayer=[CAShapeLayer layer];
        linelayer.strokeColor=[[UIColor colorWithRed:0.400 green:1.000 blue:1.000 alpha:1.000] CGColor];
        linelayer.fillColor=nil;//不能动态填充,你可以试试把设置个颜色,把linewidth设置小一些 看有什么效果。
        linelayer.lineWidth=40.0f;//线条宽度必须设高一点,设低了就是空心的
        linelayer.lineCap=kCALineCapButt;
        [self.view.layer addSublayer:linelayer];
    //把layer插入你需要绘图的layer
        
        float x=self.view.bounds.size.width/2;
        float y=self.totaltimelable.frame.origin.y+self.totaltimelable.frame.size.height+(self.xuanzeLable.frame.origin.y-(self.totaltimelable.frame.origin.y+self.totaltimelable.bounds.size.height))/2;
        
        float radius=(self.xuanzeLable.frame.origin.y-(self.totaltimelable.frame.origin.y+self.totaltimelable.bounds.size.height))/2/2-5;
        
        UIBezierPath *path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(x, y) radius:radius startAngle:0 endAngle:M_PI*2*[self totalworktimeproportionoftotaltime] clockwise:YES];
        
        linelayer.path=path.CGPath;//把layer的path设为动画里尼创建的path 必须是cgpath类型
    
        
        CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"strokeEnd"];
        
        animation.duration=1.0f;
        
        animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
        
        animation.fromValue=[NSNumber numberWithFloat:0.0f];
        
        animation.toValue=[NSNumber numberWithFloat:1.0f];
        
        animation.autoreverses=NO;
        
        animation.fillMode=kCAFillModeForwards;
        
        animation.repeatCount=1;
        
        [linelayer addAnimation:animation forKey:@"strokeEndAnimation"];
        
        linelayer.strokeEnd=1.0f;
        //一定要把strokeEnd是什么搞清楚,它代表了layer的绘制程度,从0到1,0的话就是什么都不绘制,1的话就是完全绘制。
        
    }
  • 相关阅读:
    在线学习git操作
    logstash使用ruby 修改事件戳时间
    mysql磁盘问题记录
    mkdir --help
    php过滤前端post提交过滤html标签
    【摸鱼范式】【一】UVM入门教程【文字版】
    第一次运行svlib
    svlib文档翻译(第五章)
    svlib文档翻译(第一至四章)
    【三】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列
  • 原文地址:https://www.cnblogs.com/xiaomingtongxue/p/4518441.html
Copyright © 2011-2022 走看看