首页 > 代码库 > 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];
//第二、UIBezierPath和CAShapeLayer关联
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];
}