Когда я впервые создал эмиттер я могу это сделать:Изменение свойств CAEmitterCell из CAEmitterLayer после излучения начинает
self.cell = [CAEmitterCell emitterCell];
self.cell.yAcceleration = 20;
...
self.emitter.emitterCells = [NSArray arrayWithObjects:self.cell,nil];
Но сказать, что я создать таймер, который стреляет через 5 секунд, и я делаю это:
- (void)timerFired
{
self.cell.yAcceleration = -10;
}
Таймер срабатывает, но yAcceleration CAEmitterCell не изменяется. Или, по крайней мере, ничего не меняется в выбросе частиц на экране. Как я могу заставить CAEmitterCell уважать изменения, которые я вношу в его свойства?
Я смущен. Где находится строка [self.cell setName: @ "cell"] и где она ссылается выше? Вы хотите сказать, что это должно быть [self.cell setName: @ "NAME"]; и затем [self.emitter setValue: ... forKeyPath: @ "emitterCells.NAME.yAcceleration"]; Ответ, как написано, сбивает меня с толку, потому что ячейка - это такой общий термин, я задаюсь вопросом, изменяете ли вы путь ключа? – Cindeselia
@Cindeselia, более поздняя часть - это просто пояснить, что имя ячейки в их случае было ячейкой. Если вы присвоили свое имя «foo», тогда keyPath будет «emitterCells.foo.yAcceleration». – Warpling