CAShapeLayer

 

    UIView *showView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];

    [self.view addSubview:showView];

    showView.backgroundColor = [UIColor redColor];

    showView.alpha = 0.5;

    

    

    

    // 贝塞尔曲线(创建一个圆)

    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(100 / 2.f, 100 / 2.f)

                                                        radius:100 / 2.f

                                                    startAngle:0

                                                      endAngle:M_PI * 2

                                                     clockwise:YES];

    

    

    

    // 创建一个shapeLayer

    CAShapeLayer *layer = [CAShapeLayer layer];

    layer.frame         = showView.bounds;                // 与showView的frame一致

    layer.strokeColor   = [UIColor greenColor].CGColor;   // 边缘线的颜色

    layer.fillColor     = [UIColor blueColor].CGColor;   // 闭环填充的颜色

    layer.lineCap       = kCALineCapSquare;               // 边缘线的类型

    layer.path          = path.CGPath;                    // 从贝塞尔曲线获取到形状

    layer.lineWidth     = 4.0f;                           // 线条宽度

    layer.strokeStart   = 0.0f;

 

    // 将layer添加进图层

    [showView.layer addSublayer:layer];

 

    // 给这个layer添加动画效果

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

    pathAnimation.duration = 1.0;

    pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];

    pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];

    [layer addAnimation:pathAnimation forKey:nil];

posted @ 2015-11-20 13:57  锄,禾日当午  阅读(125)  评论(0编辑  收藏  举报