我有2个视图,我想使用各自的图层进行绘制。我的第一个观点,我称之为TextView
,只不过是一个充满文字的页面。我将称之为DrawView
的另一个视图是绘图发生的地方。在TextView
中,图层用于将PDF文本绘制到视图中。例如:
另一方面,DrawView的图层是制作自定义图形的地方。 (例如自由形式的图纸,矩形等)
现在我想要发生的事情是让DrawView
中的绘图看起来好像是在 TextView
下绘制的。像这样:
我所做的是将DrawView添加为TextView的子视图。但这就是发生的事情:
我尝试使用kCGBlendModeMultiply
,就像第二张图片中使用的那样,但没有任何反应。任何人都可以告诉我如何使这项工作?感谢。
注意:第二张图片达到我想要的唯一原因是因为我将矩形插入同一层,即TextView的图层。我想做同样的效果,但在DrawView层内,这是TextView的子视图。
答案 0 :(得分:1)
只是一个想法:
您可以使用3个图层,而不是2个。突出显示的区域可以位于第1层(背面图层)。文本文档可以位于第2层(中间),而绘图层可以位于第3层(前层)。
将第3层的不透明度设置为某个中间值,这样您仍然可以看到第2层上的内容。
当用户绘制时,让第3层成为实际接受绘图的视图。由于它是半透明的,您仍然可以看到中间层。调用touchesEnded时,将绘图复制到第1层,它可以保留在第1层。从第3层删除它,你应该完成你想要的。
这是你在想什么?