清除一个区域,以便后面的视图显示出来

Clear a region so that views behind show through

好的,所以我有一个如下所示的基本视图:

我在它上面有一个视图,有一些子视图,看起来像这样:

假设那些彩色波浪线代表我在该覆盖视图中的子视图。

但是我想展示我的基础层的某些部分。如果我有这样一个矩形:

我希望它看起来像这样:

老实说,在实现这一点时我有点不知所措。我的第一个想法是使用 CGContextSetBlendMode(.Clear),但绘图是在 后面 子视图完成的,而不是在它们之上。我也不能直接渲染子视图的内容而不将它们添加到我的视图中,因为当它们没有被剪掉时,它们仍然需要交互。

在这些作品中投掷扳手;该基础层是一个 WKWebView, 仍然需要交互。

我在这里被严重难住了。有帮助吗?

我有点难以理解困难是什么......你似乎在描述面具。也许我错了;我可能会遗漏一些进一步的要求。但是带着面具我很容易就能达到这个结果:

这是一个背景,里面有一些文字;在那之前,清晰的视野可以容纳其他一切;波浪线是清晰视图的子视图。清晰的视图有一个遮罩层,可以切掉波浪线中的矩形孔。触摸不受清晰视图的影响,因为触摸 "fall through" 清晰视图;它只是用来放置面具(和波浪线)。