Ios 使CAEmitterLayer显示粒子时遇到问题

Ios 使CAEmitterLayer显示粒子时遇到问题,ios,caemitterlayer,caemittercell,Ios,Caemitterlayer,Caemittercell,我已经阅读了一些教程并查看了文档,但是我无法让我的CAEmitterLayer显示任何粒子。我有一个CAEmitterLayer和CAEmitterCell属性,它们都具有非原子和storng属性。也许我遗漏了一个步骤,但我已经导入了QuartzCore,下面是我在viewDidLoad中调用的层和单元的设置方法: -(void) setupEmitter{ self.emitterLayer = [CAEmitterLayer layer]; self.emitterLayer.boun

我已经阅读了一些教程并查看了文档,但是我无法让我的CAEmitterLayer显示任何粒子。我有一个CAEmitterLayer和CAEmitterCell属性,它们都具有非原子和storng属性。也许我遗漏了一个步骤,但我已经导入了QuartzCore,下面是我在viewDidLoad中调用的层和单元的设置方法:

-(void) setupEmitter{

 self.emitterLayer = [CAEmitterLayer layer];
 self.emitterLayer.bounds = CGRectMake(0, 0, 200,200);
 self.emitterLayer.position = CGPointMake(100,100);
 self.emitterLayer.backgroundColor = [[UIColor clearColor] CGColor];
 self.emitterLayer.emitterPosition = CGPointMake(100, 100);
 self.emitterLayer.emitterSize = CGSizeMake(100, 100);
 [self.view.layer addSublayer:self.emitterLayer];
}


-(void) setupEmitterCell {

 self.emitterCell = [CAEmitterCell emitterCell];
 self.emitterCell.name = @"goldstar";
 self.emitterCell.contents = (id)[UIImage imageNamed:@"bokeh.png"].CGImage;
 self.emitterCell.birthRate = 66;
 self.emitterCell.lifetime = 0.5;;
 self.emitterCell.lifetimeRange = 0.6;
 self.emitterCell.velocity = 300;
 self.emitterCell.emissionRange = 2 * M_PI;
 self.emitterCell.spin = 0.0;
 self.emitterCell.spinRange = 4 * M_PI;
 self.emitterCell.color = [[UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:1.0] CGColor];
 self.emitterCell.scale = 1.0;
 self.emitterCell.scaleRange = 1.0;
 self.emitterCell.emitterCells = [NSArray arrayWithObjects:self.emitterCell, nil];
}

我可能错了,但问题似乎是你忘了告诉发射器应该用什么做电池?可能使用
[self.emitterLayer setEmitterCells:self.emitterCell]可能会有帮助。

这是
setupEmitterCell:
的最后一行所做的。不是这样。你在给发射体细胞发射体细胞。但是,正如@Boby_Wan所说,你没有给发射器任何单元。在我看来,在
setupEmitter
你创建了一个发射器;在
setupEmitterCell
创建发射器应使用的单元;在
setupEmitterCell
的末尾,是否将单元格添加到单元格中?(我对最后一部分不太清楚。)但是你从来没有告诉
self.emitterLayer
使用
self.emitterCell
作为它的单元格。好吧,我明白了。层和单元都有“单元”属性,这让人有点困惑,我只是简单地掩盖了这一点。谢谢不客气!我很高兴能帮助你。:)