ios - 清除一个区域,以便后面的 View 显示出来

标签 ios swift uiview wkwebview

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

base layer content

我在它上面有一个 View ,有一些 subview ,看起来像这样:

both layers content

假设那些彩色波浪线代表我在该叠加 View 中的 subview 。

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

rect that should clip overlay contents

我希望它看起来像这样:

overlay view contents clipped by rect

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

在这些作品中 throw Spanner ;该基础层是 WKWebView,也仍然需要交互。

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

最佳答案

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

enter image description here

这是一个背景,里面有一些文字;在那之前,清晰的视野可以容纳其他一切;波浪线是清晰 View 的 subview 。清晰的 View 有一个 mask 层,可以切掉波浪线中的矩形孔。触摸不受清晰 View 的影响,因为触摸会“穿过”清晰的 View ;它只是用来放置面具(和波浪线)。

关于ios - 清除一个区域,以便后面的 View 显示出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38680244/

相关文章:

ios - 获取两个 NSDate 之间的准确时差?

ios - Swift:异步回调

ios - 如何在同一函数中再次调用部分代码?

ios - 在单元格中,如何定位和调整从带有自动布局的 Nib 创建的 View 的大小?

swift - Swift 中的自定义弹出 View (界面生成器)

ios - 根据swiftui中单击的切换按钮从数组中删除数据

swift - 二元运算符 '<' 不能应用于类型 'Double' 和 'CGFloat' 的操作数

ios - 自定义 UITableViewCell 中的prepareForSegue

ios - 具有不同半径的 View 的所有四个角

c# - 如何更改为另一个 View Controller (解释清楚)