この単純なCATiledLayerの例をご覧くださいhttps://github.com/seanhess/CATiledLayer-Example
これは、次のような階層を持つ1つのviewControllerで構成されます。
view: (frame = window size)
scrollView: (frame = window size, content size = 200 x 4000)
contentView: (frame = content size = 200 x 4000, tile size = 100 x 100)
コンテンツビューのレイヤーは、CATiledLayerになるようにオーバーライドされています。
リンクされたコードを実行すると、同じrectを持つタイルが複数回要求されていることがわかります。これは、最初にコードを実行したときとスクロールしたときの両方で発生します。
ブランチ「1列」に切り替えます。これはinitでのみ発生し、下にスクロールしたときには発生しません。
ブランチ「default-tile-size」に切り替えます-これはinitでのみ発生しますが、非常にまれです(発生する前に複数回実行する必要があります)
drawLayer:inContext:
正しいデータを見つけて描画するコードを書き込もうとしています。それは高くつくかもしれません、そして私はそれを二度以上やりたくありません。
何が起こっているのか分かりますか?私は別の方法で何ができますか?