我正在使用CALayer
带有一堆CGContextAddCurveToPoint
调用的自定义扩展来绘制可滚动图形[ MyCustomCALayer drawInContext]
。
我实际上并没有绘制图形的整个长度,而是在每次UIPanGestureRecognizer
更新以反映新的水平偏移时重新绘制图层的内容。这样,我只绘制图形的可见部分,而图层的边界仅延伸到屏幕的大小。
[ MyCustomCALayer setNeedsDisplay ]
当图形数据改变或平移偏移量改变时被调用,然后导致[ MyCustomCALayer drawInContext]
被调用。
但是,每当我在平移过程中重绘图层时,都会出现这种奇怪的重影。一些搜索表明它可能是通过重绘图层内容调用的隐式动画,但我找不到明确的答案。
这是图表在静止时的样子:
这是在平移期间,重绘重绘:
当然,当我绘制整个图形并调整图层的position
属性以平移时,它不是重影,但是在内存中拥有一个又大又长的位图似乎是一件坏事。
有没有人见过这种鬼影?如果它(我怀疑)是隐式动画,我该如何禁用所述动画?