Tag: caemitterlayer

CAEmitterLayer在触摸事件中发出随机不需要的粒子

我试图build立一个CAEmitterLayer来创造一个五彩纸屑的效果,我遇到了两个问题: 每当我将我的细胞上的birthRate设置为非零值以启动animation时,我会在屏幕上随机放置一组细胞,这会正常生成animation,然后发射器会继续正确地发射。 每当emitterCells在屏幕上绘图的时候,无论我什么时候触摸屏幕,发射器emitterCells在随机的(看似)随机的时间内(看起来)随机的位置绘制emitterCells 。 发射器中没有任何东西与任何触摸事件绑定(即,我不是故意在触摸事件上绘制任何东西),但该图层位于具有多个embedded视图的视图中。 我越接触,越多的细胞出现。 这里是我的代码,用于设置发射器,然后启动和停止(一旦我调用停止函数,然后点击屏幕停止创build新的随机元素): – (void)setupConfetti { self.confettiLayer = [CAEmitterLayer layer]; [self.view.layer addSublayer:self.confettiLayer]; [self.view.layer setNeedsDisplay]; self.confettiLayer.emitterPosition = CGPointMake(1024.0/2,-50.0); self.confettiLayer.emitterSize = CGSizeMake(1000.0, 10.0); self.confettiLayer.emitterShape = kCAEmitterLayerLine; self.confettiLayer.renderMode =kCAEmitterLayerUnordered; CAEmitterCell *confetti = [CAEmitterCell emitterCell]; confetti1.contents = (id)[[UIImage imageNamed:@"confetti.png"] CGImage]; confetti.emissionLongitude = M_PI; confetti.emissionLatitude = 0; confetti.lifetime = 5; confetti.birthRate = 0.0; confetti.velocity = 125; […]