音频播放指示器
1.水平方向
let r = CAReplicatorLayer()
r.bounds = CGRectMake(0, 0, 60, 60)
r.position = CGPointMake(view.center.x, view.center.y - 100)
r.backgroundColor = UIColor.lightGrayColor().CGColor
view.layer.addSublayer(r)
let layer = CALayer()
layer.bounds = CGRectMake(0, 0, 40, 8)
layer.position = CGPoint(x: -15, y: 10)
layer.backgroundColor = UIColor.redColor().CGColor
layer.cornerRadius = 2
r.addSublayer(layer)
let animation = CABasicAnimation(keyPath: "position.x")
animation.toValue = layer.position.x+35
animation.duration = 0.5
animation.autoreverses = true
animation.repeatCount = Float.infinity
layer.addAnimation(animation, forKey: nil)
r.instanceCount = 3;
r.instanceTransform = CATransform3DMakeTranslation(0, 20, 0)
r.instanceDelay = 0.33
r.masksToBounds = true
r.backgroundColor = nil
2.垂直方向
let r = CAReplicatorLayer()
r.bounds = CGRect(x: 0.0, y: 0.0, width: 60.0, height: 60.0)
r.position = view.center
r.backgroundColor = UIColor.lightGrayColor().CGColor
view.layer.addSublayer(r)
let bar = CALayer()
bar.bounds = CGRect(x: 0.0, y: 0.0, width: 8, height: 40.0)
bar.position = CGPoint(x: 10.0, y: 75.0)
bar.cornerRadius = 2.0
bar.backgroundColor = UIColor.redColor().CGColor
r.addSublayer(bar)
let move = CABasicAnimation(keyPath: "position.y")
move.toValue = bar.position.y-35.0
move.duration = 0.5
move.autoreverses = true
move.repeatCount = Float.infinity
bar.addAnimation(move, forKey: nil)
r.instanceCount = 3
r.instanceTransform = CATransform3DMakeTranslation(20.0, 0.0, 0.0)
r.instanceDelay = 0.33
r.masksToBounds = true
r.backgroundColor = nil
网友评论