首页 > 代码库 > CAShapeLayer使用

CAShapeLayer使用

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

    [self.view addSubview:showView];

    showView.backgroundColor = [UIColor whiteColor];

    

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

                                                        radius:100 / 2.f

                                                    startAngle:0

                                                      endAngle:1.5*M_PI

                                                     clockwise:YES];

    

    CAShapeLayer *layer = [CAShapeLayer layer];

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

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

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

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

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

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

    layer.strokeStart   = 0.0f;

    layer.strokeEnd     = 0.0f;

    

    [showView.layer addSublayer:layer];

 

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

    pathAnimation.duration = 5.0;

    pathAnimation.fromValue = http://www.mamicode.com/[NSNumber numberWithFloat:0.0f];

    pathAnimation.toValue = http://www.mamicode.com/[NSNumber numberWithFloat:1.0f];

    [layer addAnimation:pathAnimation forKey:nil];

CAShapeLayer使用