Skip to content

guntidheerajkumar/CAEmitterLayer-Animation

Repository files navigation

CAEmitterLayer-Animation


CAEmitterLayer heartsEmitter = new CAEmitterLayer();

public override void ViewDidLoad()
{
	  base.ViewDidLoad();
    heartsEmitter.Position = new CGPoint(BtnSpreadLove.Frame.X + BtnSpreadLove.Frame.Size.Width / 2.0f,
                             BtnSpreadLove.Frame.Y + BtnSpreadLove.Frame.Size.Height / 2.0f);
    heartsEmitter.Size = BtnSpreadLove.Bounds.Size;

    heartsEmitter.Mode = "kCAEmitterLayerVolume";
    heartsEmitter.Shape = "kCAEmitterLayerRectangle";
    heartsEmitter.RenderMode = "kCAEmitterLayerAdditive";

    CAEmitterCell heart = new CAEmitterCell();
    heart.Name = "heart";
    heart.EmissionLongitude = (nfloat)Math.PI / 2.0f;
    heart.EmissionRange = 0.55f * (nfloat)Math.PI;
    heart.BirthRate = 0.0f;
    heart.LifeTime = 10.0f;
    heart.Velocity = -120;
    heart.VelocityRange = 60;
    heart.AccelerationY = 20;
    heart.Contents = UIImage.FromBundle("DazHeart").CGImage;
    heart.Color = UIColor.FromRGBA(0.5f, 0.0f, 0.5f, 0.5f).CGColor;
    heart.RedRange = 0.3f;
    heart.BlueRange = 0.3f;
    heart.AlphaSpeed = -0.5f / heart.LifeTime;
    heart.Scale = 0.15f;
    heart.ScaleSpeed = 0.5f;
    heart.SpinRange = 2.0f * (nfloat)Math.PI;
    heartsEmitter.Cells = new CAEmitterCell[] { heart };
    this.View.Layer.AddSublayer(heartsEmitter);

    BtnSpreadLove.TouchUpInside += (sender, e) => {
      var heartsBurst = CABasicAnimation.FromKeyPath("emitterCells.heart.birthRate");
      heartsBurst.From = NSNumber.FromFloat(10.0f);
      heartsBurst.To = NSNumber.FromFloat(0.0f);
      heartsBurst.Duration = 15.0f;
      heartsBurst.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear);
      heartsEmitter.AddAnimation(heartsBurst, "heartsBurst");
    };
}

public override void ViewWillUnload()
{
	base.ViewWillUnload();
	heartsEmitter.RemoveFromSuperLayer();
	heartsEmitter = null;
}

Output

About

CAEmitterLayer Heart Animation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages