前几天我在玩网易云音乐的手机端时,发现一个有趣的效果
如上图,因为我最近在玩阴阳师的游戏,所以给网易云设置了皮肤,可以看出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:地址