2013年11月12日火曜日

UITableViewのスクロール中にcocos2dのアニメーションやボタンイベントをブロックさせない方法

cocos2dのGL ViewとUIKitのUI部品を混在させる事があります。
特にUITableViewは、cocos2dで同じような機能を実装するのが面倒なので、混在させて使用することもあると思います。

そんな時、UITableViewをスクロールさせると、cocos2dの処理がブロックされてしまいます。

UITableViewをスクロールさせながら、cocos2dの処理をブロックさせないには、どうしたら良いのでしょうか?


検索すると色々情報が出てくるので、みんな一度は通る道なのかと思います。
古いcocos2dのバージョンに関するものが多いですが、cocos2d v2.1で有効な情報がStack Overflowにありました。


こちらの情報によりますと、CCDirectorIOS.mのstartAnimationメソッドで、
[_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
と書かれている部分を、以下のように書き換えてやるだけです。
[_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];

但し、この変更によってどんな弊害があるのか、実はまだ分かりません。(;´∀`)
私の開発中のプロジェクトでは、今のところ特にパフォーマンスが落ちたりするような事も無く動作しているので、しばらく様子を見ようと思います。

関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...