我在UIVIew中绘制了一组CGPath,其中UIImage被用作一种画布(想象一下带有一些高光的地图)。
这些路径中的每一个都使用填充和边框颜色绘制。
此视图的业务逻辑表明,当对象(由路径表示)转到另一个状态(例如:Busy,InMaintenance)时,它必须更改其边框或填充颜色。
此时我正在更新对象列表的元素并调用SetNeedsDisplay。
调用Draw并重新绘制所有内容。
有更好的方法吗?我可以改变重绘单一路径吗?
谢谢,
Luis Pinho
答案 0 :(得分:0)
不可能这样做。您需要重绘已曝光的整个区域。
如果您希望单个项目会发生很大变化,但其余项目将保持不变,则可以使用两个不同的视图或图层。一个包含静态上下文,另一个包含更新的上下文。具有更新的上下文的那个将具有透明背景,并且您将其置于另一个之上。
这样,您只需重绘该视图/图层。