判断透明像素和事件穿透效果

前几天我在玩网易云音乐的手机端时,发现一个有趣的效果

判断透明像素和事件穿透效果_第1张图片
网易云音乐页面部分截图

如上图,因为我最近在玩阴阳师的游戏,所以给网易云设置了皮肤,可以看出tabbarItem比平常的要高,而我所得有趣的效果就是当我点击我用红色曲线圈起来的区域时,是tabbar在响应点击事件,从而切换页面,而当我点击蓝色箭头所指的区域时,是tableView 的 cell在响应点击事件,从而开始播放这首歌曲。

从事iOS开发的同学都知道,iOS的控件都是矩形的,像这样的特殊效果,给人的感觉就好像是这四个tabbarItem是不规则的形状一样

我所想到的解决方法是:监听手指点击的点的图片的像素是否透明,如果透明,则tabbar不响应事件,则根据响应链的特性,其下方的tableView就会响应点击事件

想到方法后,我便开始了百度,

首先找到了这样一篇博客:iOS实现UIImageView透明区域点击事件穿透(这篇博客也是转载的:原文链接在博客下方:原文链接)

后又在万能的stackOverFlow上找到一篇更详细的问题回答:How do I get the RGB Value of a pixel using CGContext?

以上两个链接讲解的都很详细,我也不再赘述了,有兴趣的同学可以下载网易云设置皮肤后仔细体验一下


判断透明像素和事件穿透效果_第2张图片
demo效果图

最后附上demo:地址

你可能感兴趣的:(判断透明像素和事件穿透效果)