のカスタム拡張機能を使用して、スクロール可能なグラフとして描画してCALayer
いCGContextAddCurveToPoint
ます[ MyCustomCALayer drawInContext]
。
私は実際にグラフの全長を描画しているわけではなく、UIPanGestureRecognizer
新しい水平オフセットを反映するように更新するたびにレイヤーの内容を再描画しています。このようにして、グラフの可視部分のみを描画し、レイヤーの境界は画面のサイズまでしか拡張しません。
[ MyCustomCALayer setNeedsDisplay ]
グラフ データが変更されたとき、またはパン オフセットが変更されたとき[ MyCustomCALayer drawInContext]
に呼び出され、呼び出されます。
ただし、パン中にレイヤーを再描画するたびに、この奇妙なゴーストが発生します。少し調べてみると、レイヤーのコンテンツを再描画することによって呼び出される暗黙のアニメーションである可能性がありますが、決定的な答えは見つかりません。
静止時のグラフは次のようになります。
そして、これはゴーストの再描画を伴うパンニング中です。
確かに、グラフ全体を描画し、レイヤーのプロパティをパンに調整すると、ゴーストposition
は発生しませんが、メモリに大きな長いビットマップがあるのは悪いことのようです.
誰もこの種のゴーストを見たことがありますか? それが(私が疑うように)暗黙のアニメーションである場合、どうすればそのアニメーションを無効にできますか?