CAEmitter позиционирует частицы вертикально в случайных местах
Мой emitterShape установлен в виде линии, которая размещает ячейки горизонтально в случайных местах, но по какой-то причине он также размещает ячейки вертикально по всему экрану в случайных местах. Зачем?
Я только хочу, чтобы начальная позиция частицы была где-то на оси х в верхней части экрана.
Мое размещение и генерация клеток выглядит следующим образом:
func addConfettiToView(view:UIView){
DispatchQueue.main.async {
let emitter = CAEmitterLayer()
emitter.emitterPosition = CGPoint(x: view.frame.size.width / 2, y: 0)
emitter.emitterShape = kCAEmitterLayerLine
emitter.emitterSize = CGSize(width: view.frame.size.width, height: 1)
emitter.emitterCells = self.generateConfettiCells()
view.layer.addSublayer(emitter)
}
}
private func generateConfettiCells() -> [CAEmitterCell] {
var cells:[CAEmitterCell] = [CAEmitterCell]()
for index in 0..<16 {
let cell = CAEmitterCell()
cell.birthRate = 4.0
cell.lifetime = 3
cell.lifetimeRange = 0
cell.velocity = 190
cell.velocityRange = 0
cell.yAcceleration = 500
cell.emissionLongitude = CGFloat(Double.pi)
cell.emissionRange = 0.5
cell.spin = 3.5
cell.spinRange = 0
cell.color = UIColor(red: 1.0, green: 0.0, blue: 77.0/255.0, alpha: 1.0)
cell.contents = UIImage(named: "Box")!
cell.scaleRange = 0.25
cell.scale = 0.1
cell.alphaSpeed = 20.5
cell.name = "cell\(index)"
cells.append(cell)
}
return cells
}