2013-05-16 16 views
3

我正在使用CAEmitterLayer(如this example)在iOS中使用粒子系統,但當我需要時我無法刪除粒子。如何刪除CAEmitterLayer?

我想下面的代碼,但它不工作:

[self.emitterLayer setLifetime:0]; 
[self.emitterLayer removeFromSuperlayer]; 
[self.setEmitterLayer:nil]; 

有什麼建議?謝謝!

回答

3

請使用

for (CALayer *layer in _plusButton.layer.sublayers) { 
    if (layer.class == [CAEmitterLayer class]) { 
     [layer removeFromSuperlayer]; 
    } 

} 

,並請發現有助於您 here

+0

感謝。對不起,我有一個mi類的參考CAEmitterLayer實例: @property(nonatomic,strong)CAEmitterLayer * emitterLayer; 我嘗試你的代碼,但粒子繼續顯示:( –

+0

你見過我提供的鏈接 – iEinstein

+0

是的,但我不明白有效的答案...我試圖從超級層刪除,但它doesn 't work :( –

0

我有意見,在過去幾個月ESP發揮各地有很多的鏈接。與iOS 5.0到6.0,我的經驗是,你不能刪除「removeFrom」的大部分這些意見,但你可以隱藏他們,然後隨意顯示。特別是如果你的邏輯發生在一個視圖內或沒有根視圖。

你只需要實現這樣的事情:將其隱藏:[YourView setHidden:YES];或表現出來:[YourView setHidden:NO];

希望這有助於

R.