1

我有 2 个视图,我想使用它们各自的图层进行绘图。我的第一个视图(我将其称为TextView)只不过是一个充满文本的页面。另一个视图,我称之为DrawView,是绘图发生的地方。在TextView中,图层用于将 PDF 的文本绘制到视图中。例如:

查看显示 PDF 的内容

另一方面,DrawView 的层是进行自定义绘图的地方。(例如自由图形、矩形等)

现在我想要发生的事情是让图纸中的图纸DrawView看起来好像是TextView. 像这样:

突出显示的文本

我所做的是将 DrawView 添加为 TextView 的子视图。但这就是发生的事情:

用颜色覆盖的文本

我尝试使用kCGBlendModeMultiply第二张图片中使用的类似内容,但没有任何反应。谁能告诉如何使这项工作?谢谢。

注意:第二个图像实现我想要的唯一原因是因为我在同一层内插入了矩形,这是 TextView 的层。我想做同样的效果,但在 DrawView 层内,它是 TextView 的子视图。

4

1 回答 1

1

只是一个想法:

您可以使用 3 层,而不是 2 层。突出显示的区域可以在第 1 层(背面层)上。文本文档可以在第 2 层(中间),而绘图层可以在第 3 层(前层)。

将第 3 层的不透明度设置为某个中间值,这样您仍然可以看到第 2 层上的内容。

当用户绘图时,让第 3 层成为实际接受绘图的视图。由于它是半透明的,您仍然可以看到中间层。当 touchesEnded 被调用时,将绘图复制到第 1 层,它可以保留在那里。从第 3 层删除它,你应该完成你想要的。

你是这么想的吗?

于 2012-07-16T03:34:16.747 回答