动画黄金搭档:CADisplayLink & CAShapeLayer

http://www.cocoachina.com/ios/20161202/18252.html

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

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"];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值