21

iOS 7出生率が最初にゼロ以外の値に設定されている場合にのみ、CAEmitterLayer画面上にパーティクルが誤ってスポーンされるという奇妙な問題を解決できないようです。レイヤーが将来どのような状態になるかを計算しているかのようです。

// Create black image particle
CGRect rect = CGRectMake(0, 0, 20, 20);
UIGraphicsBeginImageContext(rect.size);
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

// Create cell
CAEmitterCell *cell = [CAEmitterCell emitterCell];
cell.contents = (__bridge id)img.CGImage;
cell.birthRate = 100.0;
cell.lifetime = 10.0;
cell.velocity = 100.0;

// Create emitter with particles emitting from a line on the
// bottom of the screen
CAEmitterLayer *emitter = [CAEmitterLayer layer];
emitter.emitterShape = kCAEmitterLayerLine;
emitter.emitterSize = CGSizeMake(self.view.bounds.size.width,0);
emitter.emitterPosition = CGPointMake(self.view.bounds.size.width/2,
                                      self.view.bounds.size.height);
emitter.emitterCells = @[cell];

[self.view.layer addSublayer:emitter];

DevForums の 1 つの投稿で、iOS 7CAEmitterLayerで同様の問題を抱えていると何人かの人々が言及しているのを見ましたが、誰もそれを修正する方法を知りませんでした。これiOS 7はベータ版ではなくなったので、ここで質問して、誰かがクラックできるかどうかを確認する必要があると考えました. これが、待つ7.0.1か修正する必要がある単なるバグではないことを願ってい7.1ます。どんなアイデアでも大歓迎です。ありがとう!

4

2 に答える 2

2

私にとって、iOS7 に移行したときの CAEmitterLayer の問題は次のとおりでした。

iOS7 の設定では、CAEmitterLayerCell の持続時間により、パーティクルがまったく表示されません!

私が変更しなければならなかった唯一のことは、cell.duration = XXX を削除することでした。その後、パーティクルが再び表示されるようになりました。この予期せぬ、説明のつかない面倒なことで、私はリンゴを食べるつもりです。

于 2013-09-24T23:40:10.603 に答える