一个路径的动画


- (void)viewDidLoad {

[super viewDidLoad];

self.automaticallyAdjustsScrollViewInsets = NO;

self.view.backgroundColor = [UIColor blackColor];

CAShapeLayer *shapeLayer = ({

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

shapeLayer.path = [self path].CGPath;

shapeLayer.frame = CGRectMake(0, 0, 414, 300);

shapeLayer.fillColor = [UIColor clearColor].CGColor;

shapeLayer.strokeColor = [UIColor whiteColor].CGColor;

shapeLayer.lineWidth = 0.5f;

shapeLayer.opacity = 0.5f;

shapeLayer.position = self.view.center;

[shapeLayer setTransform:CATransform3DMakeScale(1, 1, 1)];

[self.view.layer addSublayer:shapeLayer];

shapeLayer;

});

CAShapeLayer *redLayer = ({

CAShapeLayer *redLayer = [CAShapeLayer layer];

redLayer.frame = CGRectMake(0, 0, 414, 300);

redLayer.path = [self path].CGPath;

redLayer.strokeEnd = 0.f;

redLayer.fillColor = [UIColor clearColor].CGColor;

redLayer.strokeColor = [UIColor redColor].CGColor;

redLayer.lineWidth = 2.f;

redLayer.position = self.view.center;

redLayer.shadowColor = [UIColor redColor].CGColor;

redLayer.shadowOpacity = 1.f;

redLayer.shadowRadius = 4.f;

redLayer.lineCap = kCALineCapRound;

[redLayer setTransform:CATransform3DMakeScale(1, 1, 1.f)];

[self.view.layer addSublayer:redLayer];

CABasicAnimation *aniStart = [CABasicAnimation animationWithKeyPath:@"strokeStart"];

aniStart.fromValue = @0;

aniStart.toValue = @0.98;

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

aniEnd.fromValue = @(0.02);

aniEnd.toValue = @(1);

CAAnimationGroup *group = [CAAnimationGroup animation];

group.duration = 4.f;

group.repeatCount = CGFLOAT_MAX;

group.autoreverses = YES;

group.animations = @[aniEnd,aniStart];

[redLayer addAnimation:group forKey:nil];

redLayer;

});

}

- (UIBezierPath *)path {

return  ({

UIBezierPath *bezierPath = [UIBezierPath bezierPath];

[bezierPath moveToPoint:CGPointMake(0, 150)];

[bezierPath addLineToPoint:CGPointMake(80,10)];

[bezierPath addLineToPoint:CGPointMake(150, 230)];

[bezierPath addLineToPoint:CGPointMake(300, 60)];

[bezierPath addLineToPoint:CGPointMake(400, 280)];

bezierPath;

});

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容