0

Is there a way to keep CAEmitter centered to UIView (using Autolayout) when rotating device?

I am adding my emitter to viewDidLoad like this:

   // setup emitter
        let emitter = CAEmitterLayer()
        emitter.frame = self.view.bounds

        emitter.renderMode = kCAEmitterLayerAdditive
        emitter.emitterPosition = self.view.center
        self.view.layer.insertSublayer(emitter, atIndex: 1)

        // setup cells
        let cell = CAEmitterCell()
        cell.contents = UIImage(named: "particle")?.CGImage
        cell.birthRate = 1500
        cell.lifetime = 5.0
        cell.color = UIColor(red: 1.0, green: 0.5, blue: 0.1, alpha: 1).CGColor
        cell.alphaSpeed = -0.4
        cell.velocity = 50
        cell.velocityRange = 250

        cell.emissionRange = CGFloat(M_PI) * 2.0

        //add cells to the emitter
        emitter.emitterCells = [cell]

I have tried to remove it and re-add it again but it is not centered....

George Asda
  • 2,119
  • 2
  • 28
  • 54

1 Answers1

2

ok got it. For anyone coming across this...

 override func viewDidLayoutSubviews() {

      emitter.emitterPosition = self.view.center

     }
George Asda
  • 2,119
  • 2
  • 28
  • 54