是否可以重绘(更改填充颜色或应用转换)单个CGPath或必须重绘所有内容?

时间:2013-09-12 13:26:27

标签: ios xamarin.ios

我在UIVIew中绘制了一组CGPath,其中UIImage被用作一种画布(想象一下带有一些高光的地图)。

这些路径中的每一个都使用填充和边框颜色绘制。

此视图的业务逻辑表明,当对象(由路径表示)转到另一个状态(例如:Busy,InMaintenance)时,它必须更改其边框或填充颜色。

此时我正在更新对象列表的元素并调用SetNeedsDisplay。

调用Draw并重新绘制所有内容。

有更好的方法吗?我可以改变重绘单一路径吗?

谢谢,

Luis Pinho

1 个答案:

答案 0 :(得分:0)

不可能这样做。您需要重绘已曝光的整个区域。

如果您希望单个项目会发生很大变化,但其余项目将保持不变,则可以使用两个不同的视图或图层。一个包含静态上下文,另一个包含更新的上下文。具有更新的上下文的那个将具有透明背景,并且您将其置于另一个之上。

这样,您只需重绘该视图/图层。