Исходные частицы из CAEmitterLayer не запускаются в emitterPosition

Моя цель - сделать взрывоподобную анимацию, в которой за короткое время испускается много частиц. Моя проблема в том, что CAEmitterLayer, когда он начинает излучать, добавляет «будущие» частицы, чтобы они выглядели так, как будто анимация уже запущена.

Как я могу отключить или обойти это? Когда я увеличиваю birthRate, я хочу, чтобы частицы начинали появляться из emitterPosition, а не во всех точках в течение предполагаемого времени жизни CAEmitterCell. Любая помощь приветствуется.

#import "EmitterView.h"

@interface EmitterView ()

@property CAEmitterLayer* emitter;

@end

@implementation EmitterView

- (void) awakeFromNib {
    [super awakeFromNib];
    self.emitter = (CAEmitterLayer*)self.layer;

    CAEmitterCell* snowflake = [CAEmitterCell emitterCell];
    snowflake.contents = (id)[[UIImage imageNamed: @"snowflake"] CGImage];
    snowflake.lifetime = 3;
    snowflake.birthRate = 1;
    snowflake.velocity = 50;
    snowflake.emissionRange = 3.1415;

    self.emitter.birthRate = 0;
    self.emitter.emitterCells = [NSArray arrayWithObject: snowflake];
    self.emitter.emitterPosition = CGPointMake(100, 100);
    self.emitter.emitterSize = CGSizeMake(0, 0);
    self.emitter.emitterShape = kCAEmitterLayerPoint;
}

+ (Class) layerClass {
    return [CAEmitterLayer class];
}

- (void) burst {
    self.emitter.birthRate = 10;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        self.emitter.birthRate = 0;
    });
}

@end

Ответы на вопрос(1)

Ваш ответ на вопрос