首页 > 代码库 > UIBezierPath和CABasicAnimation画一条从左至右有动画的线

UIBezierPath和CABasicAnimation画一条从左至右有动画的线

- (void)drawLine{

    

    //view是曲线的背景view

    UIView *view = [[UIViewalloc]initWithFrame:CGRectMake(10,0, 300, 300)];

    view.backgroundColor = [UIColorwhiteColor];

    [self.viewaddSubview:view];


    //第一、UIBezierPath绘制线段

    UIBezierPath *firstPath = [UIBezierPathbezierPathWithOvalInRect:CGRectMake(0,0, 5,5)];

    CGPoint p1 =CGPointMake(0, 0);

    CGPoint p2 =CGPointMake(300, 0);

    [firstPath addLineToPoint:p1];

    [firstPath addLineToPoint:p2];

    UIBezierPath *lastPath = [UIBezierPathbezierPathWithOvalInRect:CGRectMake(300,0, 0,0)];

    [firstPath appendPath:lastPath];

    

   //第二、UIBezierPathCAShapeLayer关联

    CAShapeLayer *lineLayer2 = [CAShapeLayerlayer];

    lineLayer2.frame =CGRectMake(0, 50,320, 40);

    lineLayer2.fillColor = [UIColoryellowColor].CGColor;

    lineLayer2.path = firstPath.CGPath;

    lineLayer2.strokeColor = [UIColorredColor].CGColor;

 

    //第三,动画

    CABasicAnimation *ani = [CABasicAnimationanimationWithKeyPath:NSStringFromSelector(@selector(strokeEnd))];

    ani.fromValue =@0;

    ani.toValue =@1;

    ani.duration =5;

    [lineLayer2 addAnimation:ani forKey:NSStringFromSelector(@selector(strokeEnd))];

    [view.layeraddSublayer:lineLayer2];


}