我正在使用CALayer
的自定義擴展功能繪製可滾動圖形,並在[ MyCustomCALayer drawInContext]
中調用了CGContextAddCurveToPoint
個調用。[CALayer drawInContext]中的重影
我實際上並沒有繪製整個圖形的長度,而是每次更新UIPanGestureRecognizer
以反映新的水平偏移量時,我都會重繪圖層的內容。這樣,我只繪製圖形的可見部分,而圖層的邊界只擴展到屏幕的大小。
[ MyCustomCALayer setNeedsDisplay ]
當圖形數據改變或平移偏移改變時被調用,然後調用[ MyCustomCALayer drawInContext]
。
但是,每當在平移過程中重繪圖層時,我都會發生這種奇怪的重影現象。有點四處搜索表明它可能是通過重繪圖層內容調用的implicit animation,但我找不到明確的答案。
這裏的圖形的樣子在休息:
這裏,它是平移期間,與鬼影重繪:
當然,當我做繪製整個圖表和調整該層的position
屬性可以平移它不是重影,但是在內存中有一個很大的長位圖看起來像是一件壞事。
有沒有人見過這種鬼影?如果(如我所懷疑的)隱式動畫,我該如何禁用所述動畫?
輝煌內完成您的修改,感謝@joerick,很好的答案,很好的伎倆。 –
有一點需要注意:actionForKey:也可以用來爲CALayer子類的自定義屬性啓用隱式動畫。有趣的東西!感謝您的答案,正是我所期待的。 – Form