仿QQ空間滑動返回漸變導(dǎo)航欄

很遺憾, 只有iOS10才管用, 心累. 果然黑科技不靠譜.(17-10-26)

很久之前就開始打QQ的導(dǎo)航欄的主意, 這大概是我心中最完美的導(dǎo)航欄了. 百度過N多次也并沒有找到相關(guān)的實(shí)現(xiàn). QQ導(dǎo)航欄效果如下:

QQ導(dǎo)航欄.PNG

仔細(xì)觀察的話, UINavigationBar上面的titleView也是可以漸變的, 所以我想或許可以在原生的導(dǎo)航欄的基礎(chǔ)上做修改可以實(shí)現(xiàn)這樣的效果.

經(jīng)過艱苦奮斗最終實(shí)現(xiàn)效果如下:


最終實(shí)現(xiàn)效果.gif

不僅可以漸變, 而且每一個viewController的導(dǎo)航欄都可以單獨(dú)設(shè)置顏色??. 仔細(xì)觀察的話會發(fā)現(xiàn)原生導(dǎo)航欄和QQ的導(dǎo)航欄在titleView和返回按鈕的處理上是不一樣的, 我也是做出這個之后才發(fā)現(xiàn), 所以結(jié)論就是: QQ的導(dǎo)航欄是自定義的_.

關(guān)于我的實(shí)現(xiàn)方法并有什么可講的, 只是仔細(xì)研(cai)究(ce) 原生導(dǎo)航欄的組成以及層次, 上天保佑??, 剛好有我需要的并且成功找到了. 簡單來說就是黑科技. 比如這樣的代碼:

if ([view2 isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) {
   view2.hidden = true;
}

這種依賴不穩(wěn)定細(xì)節(jié)的方法完全不值得學(xué)習(xí), 鬼知道蘋果工程師哪天不開心會悄悄給navigationBar那些沒有暴露的子view換一個類名.

所以寫這個文章其實(shí)就是想告訴大家: 我?的做出來啦!!!

最后是最最重要的代碼: https://github.com/Yanyinghenmei/GradientNavigationBar

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,109評論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,408評論 4 61
  • swift的protocol可以被class,struct,enum類型實(shí)現(xiàn),如果沒在協(xié)議的方法里寫mutatin...
    言己言閱讀 227評論 0 0
  • 上一篇:今夜,我本無眠 http://www.itdecent.cn/p/f71125abc3c3 明天我要去遠(yuǎn)行...
    大麥大麥閱讀 970評論 1 2
  • 今天是兒童節(jié),雖已不再是兒童,但兒時記憶永遠(yuǎn)揮之不去。記憶中的父母對我永遠(yuǎn)是包容和稱贊,做錯了事幾乎沒有打罵過...
    別看我的心閱讀 421評論 0 1

友情鏈接更多精彩內(nèi)容