<!--
{
  "availability" : [
    "iOS: 5.0.0 -",
    "iPadOS: 5.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.6.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "QuartzCore",
  "identifier" : "/documentation/QuartzCore/CAEmitterCell",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core Animation"
    ],
    "preciseIdentifier" : "c:objc(cs)CAEmitterCell"
  },
  "title" : "CAEmitterCell"
}
-->

# CAEmitterCell

The definition of a particle emitted by a particle layer.

```
class CAEmitterCell
```

## Overview

The [`CAEmitterCell`](/documentation/QuartzCore/CAEmitterCell) class represents one source of particles being emitted by a [`CAEmitterLayer`](/documentation/QuartzCore/CAEmitterLayer) object. An emitter cell defines the direction and properties of the emitted particles. Emitter cells can have an array of sub-cells, which lets the particles themselves emit particles.

## Topics

### Creating and Initializing an Emitter Cell

[`emitterCell`](/documentation/QuartzCore/CAEmitterCell/emitterCell)

Creates and returns an instance of `CAEmitterCell`.

### Providing Emitter Cell Content

[`contents`](/documentation/QuartzCore/CAEmitterCell/contents)

An object that provides the contents of the layer. Animatable.

[`contentsRect`](/documentation/QuartzCore/CAEmitterCell/contentsRect)

A rectangle (in the unit coordinate space) that specifies the portion of [`contents`](/documentation/QuartzCore/CAEmitterCell/contents) that the receiver should draw. Animatable.

[`emitterCells`](/documentation/QuartzCore/CAEmitterCell/emitterCells)

An optional array containing the sub-cells of this cell.

### Setting Emitter Cell Visual Attributes

[`isEnabled`](/documentation/QuartzCore/CAEmitterCell/isEnabled)

A Boolean value indicating whether or not cells from this emitter are rendered.

[`color`](/documentation/QuartzCore/CAEmitterCell/color)

The color of each emitted object. Animatable.

[`redRange`](/documentation/QuartzCore/CAEmitterCell/redRange)

The amount by which the red color component of the cell can vary. Animatable.

[`greenRange`](/documentation/QuartzCore/CAEmitterCell/greenRange)

The amount by which the green color component of the cell can vary. Animatable.

[`blueRange`](/documentation/QuartzCore/CAEmitterCell/blueRange)

The amount by which the blue color component of the cell can vary. Animatable.

[`alphaRange`](/documentation/QuartzCore/CAEmitterCell/alphaRange)

The amount by which the alpha component of the cell can vary. Animatable.

[`redSpeed`](/documentation/QuartzCore/CAEmitterCell/redSpeed)

The speed, in seconds, at which the red color component changes over the lifetime of the cell. Animatable.

[`greenSpeed`](/documentation/QuartzCore/CAEmitterCell/greenSpeed)

The speed, in seconds, at which the green color component changes over the lifetime of the cell. Animatable.

[`blueSpeed`](/documentation/QuartzCore/CAEmitterCell/blueSpeed)

The speed, in seconds, at which the blue color component changes over the lifetime of the cell. Animatable.

[`alphaSpeed`](/documentation/QuartzCore/CAEmitterCell/alphaSpeed)

The speed, in seconds, at which the alpha component changes over the lifetime of the cell. Animatable.

[`magnificationFilter`](/documentation/QuartzCore/CAEmitterCell/magnificationFilter)

The filter used when increasing the size of the content.

[`minificationFilter`](/documentation/QuartzCore/CAEmitterCell/minificationFilter)

The filter used when reducing the size of the content.

[`minificationFilterBias`](/documentation/QuartzCore/CAEmitterCell/minificationFilterBias)

The bias factor used by the minification filter to determine the levels of detail.

[`scale`](/documentation/QuartzCore/CAEmitterCell/scale)

Specifies the scale factor applied to the cell. Animatable.

[`scaleRange`](/documentation/QuartzCore/CAEmitterCell/scaleRange)

Specifies the range over which the scale value can vary. Animatable.

[`contentsScale`](/documentation/QuartzCore/CAEmitterCell/contentsScale)

The scale factor of the cell contents.

[`name`](/documentation/QuartzCore/CAEmitterCell/name)

The name of the cell.

[`style`](/documentation/QuartzCore/CAEmitterCell/style)

An optional dictionary containing additional style values that are not explicitly defined by the receiver.

### Setting Emitter Cell Motion Attributes

[`spin`](/documentation/QuartzCore/CAEmitterCell/spin)

The rotational velocity, measured in radians per second, to apply to the cell. Animatable.

[`spinRange`](/documentation/QuartzCore/CAEmitterCell/spinRange)

The amount by which the spin of the cell can vary over its lifetime. Animatable.

[`emissionLatitude`](/documentation/QuartzCore/CAEmitterCell/emissionLatitude)

The latitudinal orientation of the emission angle. Animatable.

[`emissionLongitude`](/documentation/QuartzCore/CAEmitterCell/emissionLongitude)

The longitudinal orientation of the emission angle. Animatable.

[`emissionRange`](/documentation/QuartzCore/CAEmitterCell/emissionRange)

The angle, in radians, defining a cone around the emission angle. Animatable.

### Setting Emitter Cell Temporal Attributes

[`lifetime`](/documentation/QuartzCore/CAEmitterCell/lifetime)

The lifetime of the cell, in seconds. Animatable.

[`lifetimeRange`](/documentation/QuartzCore/CAEmitterCell/lifetimeRange)

The mean value by which the [`lifetime`](/documentation/QuartzCore/CAEmitterCell/lifetime) of the cell can vary. Animatable.

[`birthRate`](/documentation/QuartzCore/CAEmitterCell/birthRate)

The number of emitted objects created every second. Animatable.

[`scaleSpeed`](/documentation/QuartzCore/CAEmitterCell/scaleSpeed)

The speed at which the scale changes over the lifetime of the cell. Animatable.

[`velocity`](/documentation/QuartzCore/CAEmitterCell/velocity)

The initial velocity of the cell. Animatable.

[`velocityRange`](/documentation/QuartzCore/CAEmitterCell/velocityRange)

The amount by which the velocity of the cell can vary. Animatable.

[`xAcceleration`](/documentation/QuartzCore/CAEmitterCell/xAcceleration)

The x component of an acceleration vector applied to cell.

[`yAcceleration`](/documentation/QuartzCore/CAEmitterCell/yAcceleration)

The y component of an acceleration vector applied to cell.

[`zAcceleration`](/documentation/QuartzCore/CAEmitterCell/zAcceleration)

The z component of an acceleration vector applied to cell.

### Using Key-Value Coding Extensions

[`defaultValue(forKey:)`](/documentation/QuartzCore/CAEmitterCell/defaultValue(forKey:))

Returns the default value of the property with the specified key.

[`shouldArchiveValue(forKey:)`](/documentation/QuartzCore/CAEmitterCell/shouldArchiveValue(forKey:))

Returns a Boolean value indicating whether the value for a given key should be archived.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)