2
我在滾動視圖中使用平鋪圖層來顯示自定義視圖。自定義視圖的內容會定期更改,並且我知道發生這些更改的矩形。不過,我發現如果我做了setNeedsRedisplay,只有一個tile正在重繪。我如何告訴CATiledLayer只重繪受影響的瓷磚?CATiledLayer:如何導致只有一些瓷磚重新加載?
我在滾動視圖中使用平鋪圖層來顯示自定義視圖。自定義視圖的內容會定期更改,並且我知道發生這些更改的矩形。不過,我發現如果我做了setNeedsRedisplay,只有一個tile正在重繪。我如何告訴CATiledLayer只重繪受影響的瓷磚?CATiledLayer:如何導致只有一些瓷磚重新加載?
如果您在CATiledLayer上調用setNeedsDisplay,那麼它會重新繪製其所有圖塊。如果您改用setNeedsDisplayInRect,它應該只重繪與您指定的矩形相交的那些圖塊。但請注意,它將重繪整個圖塊,而不是與矩形相交的部分。
還要注意當它在繪圖過程中調用setNeedsDisplay時,CATiledLayer中的重繪錯誤。更多關於你可以在this question找到。