gpt4 book ai didi

ios - 用两个 CALayer 叠加绘制

转载 作者:行者123 更新时间:2023-11-29 13:32:34 25 4
gpt4 key购买 nike

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

View showing contents of PDF

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

现在我想要做的是让 DrawView 中的绘图看起来就像是在 TextView 下绘制的一样。像这样:

Highlighted text

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

text covered with color

我尝试使用 kCGBlendModeMultiply 就像在第二张图片中使用的那样,但没有任何反应。谁能告诉我如何进行这项工作?谢谢。

注意:第二个图像达到我想要的效果的唯一原因是因为我将矩形插入同一层内,即 TextView 的层。我想做同样的效果,但在 DrawView 层内,它是 TextView 的 subview 。

最佳答案

只是一个想法:

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

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

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

你是这么想的吗?

关于ios - 用两个 CALayer 叠加绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com