2013-11-15 49 views
1

我試圖做一個粒子效果,我有嵌套到另一個小區。想想他們在Apple Docs的基本煙花例子。他們將Cell嵌套到其他單元格中,並使用BeginTime參數對它們進行了計時。但是,我的CAEmittorCell沒有像我們這樣的「beginTime」參數,我在CAEmittorLayer中有一個參數...我如何嵌套單元並在不同時間執行它們,如果單元沒有beginTime參數?在他們對CAEmitterCell添加CAEmitterCell另一個CAEmitterCell

**CAEmitterCell *firework = [CAEmitterCell emitterCell];** 
firework.contents = img; 
firework.birthRate = 9999; 
firework.scale = 0.6; 
firework.velocity = 130; 
firework.lifetime = 2; 
firework.alphaSpeed = -0.2; 
firework.yAcceleration = -80; 
**firework.beginTime = 1.5;** 
firework.duration = 0.1; 
firework.emissionRange = 2 * M_PI; 
firework.scaleSpeed = -0.1; 
firework.spin = 2; 

一個「BEGINTIME」參數蘋果示例代碼----解決

通告,見下文答覆----

我簡稱爲選擇器手動等這得到期望的結果:

CAEmitterCell cell = new CAEmitterCell(); 
cell.SetValueForKeyPath (NSNumber.FromFloat(1), (NSString)"beginTime"); 
+0

@poupou好像'CAEmitterCell'符合在ObjC的'CAMediaTiming'協議和它的結合在Xamarin.iOS缺失。然後'CAMediaTiming'似乎完全失蹤!? https://github.com/mono/maccore/blob/master/src/coreanimation.cs#L48 – Krumelur

+0

有趣,感謝您的發現。我應該聯繫Xamarin支持這個話題嗎? – LampShade

回答

2

CAMediaTiming綁定是不是真的失蹤。他們被折成CAAnimationhere)和CALayerhere)。這是因爲在7.0的[Protocol]支持之前,就是實現協議的方式。

問題是CAMediaTimingdocumented僅通過這兩種類型上通過 - 但CAEmitterCell(或者其他人,我需要檢查)也conforms它和現在不公開的協議方法。

快速/直接的解決方法是調用實例上缺少選擇。未來版本的Xamarin.iOS將提供它們。

+0

優秀。我甚至從來沒有想過這樣做。謝謝! – LampShade