Итак, у меня есть гистограмма, где каждый столбец представляет собой CALayer . Я хочу анимировать каждый слой с разной задержкой.
private func drawBar(xPos: CGFloat, yPos: CGFloat, color: UIColor) {
// create animation
let animation = CABasicAnimation(keyPath: "bounds.size.height")
animation.beginTime = CACurrentMediaTime() + StaticVars.delay
animation.fromValue = 0
animation.toValue = mainLayer.frame.height - bottomSpace - yPos
animation.duration = 2.0
StaticVars.delay += 0.1
// create bar
let barLayer = CALayer()
barLayer.anchorPoint = CGPoint(x: 1, y: 1)
barLayer.frame = CGRect(x: xPos, y: yPos, width: barWidth, height: mainLayer.frame.height - bottomSpace - yPos)
barLayer.backgroundColor = color.cgColor
barLayer.add(animation, forKey: nil)
mainLayer.addSublayer(barLayer)
}
Это хорошо работает, но есть одна проблема: диаграмма уже присутствует на экране, чем она ждет задержки (0,1), после чего начинает анимацию каждого слоя с задержкой.
Я не могу понять, почему график уже показывает. То, что я хочу, - это когда приложение появляется на экране, и столбцы не должны быть видны, сразу после первой задержки должна начаться анимация графика.