CATiledLayerを使ったUIViewの破棄と生成を何度か繰り返していくと、
まれに黒いブロックがフェードインしてくる現象が出ました。

removeFromSuperviewやreleaseなどをして破棄したつもりでも、タイル部分のアニメーションが残り、場合によって黒い(何も描画されていない)タイルが出てくるのだろうと思われます。

しかしこれがまた、どうやって治すかが調べてもさっぱりでして、いろいろ試したところ、
removeFromSuperviewする前ぐらいで
_tiledView.layer.contents = nil;
などとしておくと、黒いブロックは出なくなりました。

ちなみに、UIViewのdeallocでnilを突っ込むと、場合によってタイル更新処理が止まってしまう事もありましたので、タイミングに要注意です。

タイルの更新処理が、ごくまれに止まってしまう現象を確認しました(↑の処置が原因かは確定していませんが)。
黒タイルは放置の方向で・・・。

記事検索

アーカイブ