前幾天我在玩網(wǎng)易云音樂的手機(jī)端時(shí),發(fā)現(xiàn)一個(gè)有趣的效果
如上圖,因?yàn)槲易罱谕骊庩枎煹挠螒颍越o網(wǎng)易云設(shè)置了皮膚,可以看出tabbarItem比平常的要高,而我所得有趣的效果就是當(dāng)我點(diǎn)擊我用紅色曲線圈起來的區(qū)域時(shí),是tabbar在響應(yīng)點(diǎn)擊事件,從而切換頁面,而當(dāng)我點(diǎn)擊藍(lán)色箭頭所指的區(qū)域時(shí),是tableView 的 cell在響應(yīng)點(diǎn)擊事件,從而開始播放這首歌曲。
從事iOS開發(fā)的同學(xué)都知道,iOS的控件都是矩形的,像這樣的特殊效果,給人的感覺就好像是這四個(gè)tabbarItem是不規(guī)則的形狀一樣
我所想到的解決方法是:監(jiān)聽手指點(diǎn)擊的點(diǎn)的圖片的像素是否透明,如果透明,則tabbar不響應(yīng)事件,則根據(jù)響應(yīng)鏈的特性,其下方的tableView就會響應(yīng)點(diǎn)擊事件
想到方法后,我便開始了百度,????
首先找到了這樣一篇博客:iOS實(shí)現(xiàn)UIImageView透明區(qū)域點(diǎn)擊事件穿透(這篇博客也是轉(zhuǎn)載的:原文鏈接在博客下方:原文鏈接)
后又在萬能的stackOverFlow上找到一篇更詳細(xì)的問題回答:How do I get the RGB Value of a pixel using CGContext?
以上兩個(gè)鏈接講解的都很詳細(xì),我也不再贅述了,有興趣的同學(xué)可以下載網(wǎng)易云設(shè)置皮膚后仔細(xì)體驗(yàn)一下
最后附上demo:地址