標準の UIViewController ( TestViewController ) があり、このコントローラーのviewWillLayoutSubviewsメソッドで、新しい SKView サブクラス ( TestView ) をインスタンス化し、サブビューとしてコントローラーのビューに追加します。さらに、ユーザーが SKScene サブクラス ( TestScene ) でアクションを制御できるようにするためのボタンをいくつか追加します。TestSceneは、TestViewのinitメソッドでインスタンス化されます。TestViewがサブビューとしてTestViewController のビューに追加された直後に、単に呼び出すTestViewのメソッドである[testView presentScene]も呼び出します。[自己 presentScene: testScene] .
TestViewControllerで前述のボタンを押すことは、新しい SKSpriteNode サブクラス ( TestSpriteNode ) をインスタンス化し、子としてシーンに追加する( TestViewを介して) TestSceneでメソッドを呼び出すことを意味します。これは機能しますが、最初のTestSpriteNodeが追加されると、新しいスプライトをレンダリングするTestSceneで断続的に長い遅延が発生するという問題があります。時々それは完全に機能しますが、ほとんどの場合は動かなくなり、ボタンを複数回押すと複数のスプライトが一度に表示され、その後すべてが完全に機能します. この問題は、シミュレーターと私のデバイスで発生することに注意してください。
TestScene の- (void)didMoveToView:(SKView*)viewに新しいTestSpriteNodeを追加しようとしましたが、TestSpriteNodeがすぐに表示され、ボタンを押して新しいTestSpriteNodeを追加すると遅延が発生します。ボタンを押すとTestSceneで呼び出されるメソッドにブレーク ポイントを追加すると、すぐに呼び出されることがわかりますが、追加されたTestSpriteNodeはすぐにはレンダリングされません。
動的に追加された SKSpriteNodes のレンダリングの遅延に対処する回答が既にある場合は、事前にお詫び申し上げます。私はそれを見つけることができませんでした。新しい SKSpriteNodes を SKScene に追加することについて、私が誤解していることはありますか?