如何使 UIImageView 的一部分透明以便在下面的图层中显示视图

Posted

技术标签:

【中文标题】如何使 UIImageView 的一部分透明以便在下面的图层中显示视图【英文标题】:How to make a portion of an UIImageView transparent in order to show views in layers below 【发布时间】:2014-05-11 00:04:19 【问题描述】:

这是一个图片解释,以更好地说明我的意思:

我有两个UIImageViewsView1 在底部,View2 在顶部:

我想做的是以编程方式在View2 上设置一个完全透明的区域(即具有0alpha),这将是最终结果:

我找不到与以形状(特别是圆形)的形式将 UIImageView 的一部分标记为透明相关的类似问题,并且想知道我应该如何解决这个问题?

谢谢!

【问题讨论】:

【参考方案1】:

CoreGraphics 你可以走的一条路:

    创建图像上下文 设置你需要的剪切路径(或者画完后把“洞”的圆圈清掉) 将原始图像绘制到上下文中 根据该上下文制作 UIImage 将图像分配给顶部的 UIImageView

https://developer.apple.com/library/ios/documentation/2ddrawing/conceptual/drawingprintingios/HandlingImages/Images.html#//apple_ref/doc/uid/TP40010156-CH13-SW1

【讨论】:

感谢@iOSX 的回答和建议。我会看一下文档,看看我是否能找到一种方法让“洞”按照建议与剪切路径一起工作。

以上是关于如何使 UIImageView 的一部分透明以便在下面的图层中显示视图的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 部分不透明度

使 UIImageView 透明并在触摸时显示其下方的 UIImageView

如何将覆盖层添加到 UIImageView 但不在图像的透明部分?

Swift - 如何使 UIButton 仅在附加的图像上点击交互并忽略透明部分

使用 UIImageView 在 UIView 中切割透明孔

SetLayeredWindowAttributes 使窗口透明仅在部分时间起作用