关闭

iOS 动态画圆圈

2011人阅读 评论(2) 收藏 举报
分类:

-(void)setUpAnimationLayer

{

    //因为会多次点击,所以要将该图层移除,并且指针置空

    [self.animationLayer removeFromSuperlayer];

    self.animationLayer = nil;

    

    UIBezierPath * path = [UIBezierPath bezierPath];

    //参数依次是:圆心坐标,半径,开始弧度,结束弧度   画线方向:yes为顺时针,no为逆时针

    [path addArcWithCenter:CGPointMake(50, 100) radius:50 startAngle:0 endAngle:2*M_PI clockwise:TRUE];

    

    CAShapeLayer * pathLayer = [CAShapeLayer layer];

    pathLayer.path = path.CGPath;

    pathLayer.strokeColor = [[UIColor blueColor]CGColor];//画线颜色

    pathLayer.fillColor = [[UIColor redColor]CGColor];//填充颜色

    pathLayer.lineJoin = kCALineJoinRound;

    pathLayer.lineWidth = 6.0f;

    [self.view.layer addSublayer:pathLayer];

    [self setAnimationLayer:pathLayer];//pathLayer赋给属性animationLayer

}


- (IBAction)btnClick:(id)sender {


    [self setUpAnimationLayer];

    

    [self.animationLayer removeAllAnimations];//每次将之前的动画都清除了

    

    //     keyPath = strokeEnd  动画的fromValue = 0toValue = 1                   表示 这里我们分3个点说明动画的顺序  strokeEnd从结尾开始清除 首先整条路径先清除后2/3,接着清除1/3 效果就是正方向画出路径

    CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];

    pathAnimation.duration = 10.0;

    pathAnimation.fromValue = @(0);

    pathAnimation.toValue = @(1);

    [self.animationLayer addAnimation:pathAnimation forKey:@"strokeEnd"];

}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48716次
    • 积分:711
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:5篇
    • 译文:0篇
    • 评论:12条
    文章分类
    最新评论