Animações - exmo/equizmo-ios GitHub Wiki

Onde encontrar?

A animação de neves caindo foi utilizado em LoginViewController.xib

Como utilizar?

Para criar a animação na tela de Login criamos uma a classe SnowView.h que estende o comportamento de UIView.

Esta classe utiliza o biblioteca QuartzCore/QuartzCore.h. Logo, você precisa incluir esta biblioteca em seu projeto.

Para utilizar esta view bastou abrir o LoginViewController.xib no interfacebuilder e selecionar a view e então, selecionar a classe SnowView.h como Custom Class.

Vamos olhar um pouco da implementação da classe SnowView.h:

-(void)awakeFromNib{
    snowEmitter = (CAEmitterLayer*)self.layer;
    snowEmitter.emitterPosition = CGPointMake(self.frame.size.width/2, 0);
    snowEmitter.renderMode = kCAEmitterLayerAdditive;
    
    CAEmitterCell* snow = [CAEmitterCell emitterCell];
    snow.emissionLongitude = M_PI / 2;
	snow.emissionLatitude = 200;
	snow.lifetime = 1.5;
	snow.birthRate = 2;
	snow.velocity = 450;
	snow.velocityRange = 50;
	snow.yAcceleration = -250;
	snow.emissionRange = M_PI / 3;
    snow.color = [[UIColor colorWithRed:0.2 green:0.1 blue:0.2 alpha:0.5] CGColor];
    snow.contents = (id)[[UIImage imageNamed:@"snow.png"] CGImage];
    snow.scaleSpeed = 0.5;
    snow.spin = 0.8;
    [snow setName:@"snow"];
    snowEmitter.emitterCells = [NSArray arrayWithObject:snow];
}

Vejam que o primeiro passo é instanciar CAEmitterLayer na variável snowEmitter que representará uma camada da minha view. Definimos a posição de onde a animação emitirá os elementos;

O próximo passo foi criar uma CAEmitterCell que representará a neve. Vejam que foram várias configurações e existem muitas outras que podem ser exploradas!