我这里是用 swift 写的 如果需要改成OC 自行修改 代码如下:
var musicLayer:CAReplicatorLayer = {
letmusilayer =CAReplicatorLayer.init()
musilayer.frame=CGRect(x:0, y:0, width:30, height:30)
musilayer.position=CGPoint(x:15, y:5)
musilayer.instanceCount=3 //这个是白色的竖向layer 的个数
musilayer.instanceTransform = CATransform3DMakeTranslation(5, 0, 0)
musilayer.instanceDelay=0.2 //间隔
musilayer.backgroundColor = UIColor.clear.cgColor // 想要看效果就把这个颜色 改成红色或者 其他颜色
musilayer.masksToBounds=true;
lettLayer:CALayer=CALayer.init()
tLayer.frame=CGRect(x:10, y:20, width:3, height:20) // 设置跳动的View 的frame
tLayer.cornerRadius=3;
tLayer.backgroundColor = UIColor.white.cgColor;// 设置跳动的View 的颜色
musilayer .addSublayer(tLayer)
letmusicAnimation:CABasicAnimation=CABasicAnimation.init(keyPath:"position.y")
musicAnimation.duration=0.35
musicAnimation.fromValue= tLayer.frame.size.height
musicAnimation.byValue=12
musicAnimation.autoreverses=true
musicAnimation.repeatCount=MAXFLOAT
musicAnimation.isRemovedOnCompletion=false // 防止跳界面之后再回来动画就停止了
tLayer .add(musicAnimation, forKey:"musicAnimation")
return musilayer
}()
self.statusBtn.layer.addSublayer(self.musicLayer)
然后在需要添加这个动画的view 上添加我这里是在一个button上加 的
网友评论