1

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

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

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

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

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

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

谢谢,

路易斯·皮尼奥

4

1 回答 1

0

这是不可能的。您需要重新绘制已暴露的整个区域。

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

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

于 2013-09-12T18:41:35.670 回答