在uiview中缓存绘图

Posted

技术标签:

【中文标题】在uiview中缓存绘图【英文标题】:cache drawing in a uiview 【发布时间】:2012-03-08 21:13:18 【问题描述】:

我有一个 UIView,它允许用户在屏幕上画一条线 (myLine)。这个 UIView 位于另一个 UIView 的正上方,该 UIView 有几个用 CGPaths 绘制的形状。当用户点击这些形状之一时,我需要擦除 myLine 位于这些其他形状之一之上的任何部分,就好像我正在用橡皮擦擦除像素一样。 解决这个问题的最佳方法是什么?

我需要删除线的浅蓝色部分,留下深蓝色部分

1)(当前方法部分有效)我可以使用底部视图中的路径形状作为顶部视图中的遮罩,但它只是遮盖 UIView。如果我以后需要更改蒙版位置,矢量笔画仍然存在。 (我知道这是因为我所有的线都在视图的drawrect中重新绘制)

2) 在我画完每一行之后,我是否应该以某种方式将绘图缓存为图像,然后 把三角形里面的部分切掉?

3)有没有更好的方法来解决这个问题?

【问题讨论】:

【参考方案1】:

此链接提供了答案: Building a Simple Drawing App

我将绘图缓存到位图上下文中,然后剪掉 位图不需要的部分。

【讨论】:

以上是关于在uiview中缓存绘图的主要内容,如果未能解决你的问题,请参考以下文章

Android绘图双缓存技术

Android绘图双缓存技术

DirectX学习笔记--索引缓存绘图

Android - 视图太大而无法放入绘图缓存

WebGL-利用索引缓存来绘图

在 UIView 中动画图像