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

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

网易云音乐页面部分截图

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

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

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

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

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

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

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


demo效果图

最后附上demo:地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容