Kiedy po raz pierwszy skonfigurować nadajnik mogę to zrobić:Zmiana właściwości CAEmitterCell z CAEmitterLayer po emisji rozpoczyna
self.cell = [CAEmitterCell emitterCell];
self.cell.yAcceleration = 20;
...
self.emitter.emitterCells = [NSArray arrayWithObjects:self.cell,nil];
Ale powiedzenia tworzę timer, który odpala 5 sekund później, a ja to zrobić:
- (void)timerFired
{
self.cell.yAcceleration = -10;
}
Licznik czasu uruchamia się, ale wartość atrybutu CAEmitterCell nie ulega zmianie. Lub przynajmniej nic nie zmienia w emisji cząstek na ekranie. Jak mogę przekonać CAEmitterCell do respektowania zmian, które wprowadzam w jego właściwościach?
Jestem zdezorientowany. Gdzie znajduje się linia [self.cell setName: @ "cell"] i gdzie jest mowa powyżej? Czy chcesz powiedzieć, że powinien to być [self.cell setName: @ "NAME"]; a następnie [self.emitter setValue: ... forKeyPath: @ "emitterCells.NAME.yAcceleration"]; Odpowiedź w tej chwili jest myląca, ponieważ komórka jest takim ogólnym terminem, zastanawiam się, czy modyfikujesz kluczową ścieżkę? – Cindeselia
@Cindeselia późniejszą częścią jest po prostu wyjaśnienie, że nazwa komórki w ich przypadku była komórką. Jeśli przypisałeś swoje imię "foo", wówczas keyPath będzie "emitterCells.foo.yAcceleration". – Warpling