您的位置:首页 > 其它

动画黄金搭档:CADisplayLink & CAShapeLayer

2017-01-24 11:52 309 查看
http://www.cocoachina.com/ios/20161202/18252.html

CADisplayLink

是计时器,它的频率和屏幕刷新频率同步。

CADisplayLink *dl = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateWave:)];
[dl addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];


CAShapeLayer

是通过矢量图形绘制的,path属性和UIBezierPath配合画图。

_waveSinLayer = [CAShapeLayer layer];
_waveSinLayer.strokeColor = [UIColor greenColor].CGColor;//边缘线的颜色
_waveSinLayer.fillColor = [UIColor greenColor].CGColor;// 闭环填充的颜色
_waveSinLayer.lineWidth = 5;
_waveSinLayer.lineJoin = kCALineJoinRound;//链接线类型
_waveSinLayer.lineCap = kCALineCapRound;//边缘性类型
_waveSinLayer.frame = CGRectMake(0, self.bounds.size.height, self.bounds.size.width, self.bounds.size.height);
[self.layer addSublayer:_waveSinLayer];


CABasicAnimation

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
animation.fromValue = [NSValue valueWithCGPoint:_waveSinLayer.position];//所改变属性的起始值
animation.toValue = [NSValue valueWithCGPoint:position];//所改变属性的结束时的值
animation.duration = 5;//动画的时长
animation.repeatCount = HUGE_VALF;//重复的次数。不停重复设置为 HUGE_VALF
animation.removedOnCompletion = NO;
[_waveCosLayer addAnimation:animation forKey:@"sss"];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: