完全透明的UIBUTTON具有不规则的命中区域



我知道如何使用Alpha Channel使用背景图像来创建具有不规则的TAP区域的UIButton。但是,使用该解决方案,只有忽略的-TAP区域是透明的。抽头区域由不透明

组成

我想要的是完全透明的 UIButton,具有不规则的水龙头区域。(它触发按钮后面的动画。)

似乎有些额外的UILayer带有一些命中测试可以起作用,但我不太了解。欢迎建议。

这是我的解决方案。问题:UIImageView(将其称为基本视图),我想附加一个不规则形状的TAP区域。该区域与图像中的某些东西相对应,我们称其为河流。它可能是一个非连接区域。

在查找器中,使用您喜欢的图形应用程序复制视图的图像,并使所有非旋转像素透明。称此为掩码图像

敲击基本视图时,检查掩码图像中的对应像素是否透明。(留给读者的解决方案;示例比比皆是。)

因此,掩码图像从未真正呈现,它只是用作参考。

请注意,如果基本视图被调整或四处移动(就像在我的应用程序中一样,通过对其约束进行动画),则您也必须"移动"掩码映像,或以其他方式管理视图之间的坐标翻译和面具。最简单的方法是使蒙版映像a hidden 基本视图的子视图,其左,顶部,领先锚和尾随的锚约为基本视图的锚。然后他们一起移动,两者之间的坐标翻译是身份。

我将所有这些包裹在UIImageView的子类中,以便它自己的面具,并在挖掘"河流"(或其他)时称其为代表。

最新更新