iOS 隱藏導(dǎo)航欄UINavigationBar黑線

要解決問(wèn)題,首先要知道問(wèn)題發(fā)生在哪里,這個(gè)問(wèn)題是當(dāng)初剛工作在項(xiàng)目過(guò)階段評(píng)審的時(shí)候被設(shè)計(jì)提出來(lái)的,他說(shuō)你看這導(dǎo)航欄下面怎么會(huì)有一像素的黑線,當(dāng)時(shí)真的是愣住了,甚至認(rèn)為這是一個(gè)蘋果的bug?,F(xiàn)在想想真的好幼稚。

首先我們看一下蘋果官方給出的解釋:


2E04731A-B0C8-4341-9B1D-D8FBB09B6484.png

現(xiàn)在讓我這個(gè)英語(yǔ)半吊子來(lái)翻譯一下,他的意思就是說(shuō)如果你不調(diào)用這個(gè)方法設(shè)置一張背景圖片的話,那我就給你默認(rèn)一張,然后同時(shí)還有一張陰影圖片被默認(rèn)設(shè)置上去,好吧,這就是導(dǎo)航欄上1px黑線的由來(lái),沒(méi)錯(cuò),就是這個(gè)蘋果贈(zèng)送的shadowImage。


B6D352EE-F0C8-402C-B797-23405F232869.png

相信看到這個(gè)解釋即使不繼續(xù)說(shuō)下去有些同學(xué)也知道解決辦法了吧,沒(méi)錯(cuò)嘛,你就用上面說(shuō)的那個(gè)方法,給設(shè)置一張背景圖片,然后在設(shè)置一張shadowImage就可以了,就像這樣:

[[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]]; 

為了一勞永逸,我把他寫在AppDelegate里面了。

下一個(gè)解決辦法,將UINavigationBar的clipsToBounds屬性設(shè)成YES就好啦,從此黑線去無(wú)蹤。

最后一個(gè)辦法,就是循環(huán)遍歷一下UINavigationBar的所有子視圖,發(fā)現(xiàn)有UIImageView類型的視圖就remove掉,或者設(shè)成隱藏狀態(tài)(hidden)。雖然也能達(dá)到想要的效果,但是感覺(jué)這個(gè)方法太暴力了,不是很推薦。

差不多就是這些了,應(yīng)該總有一款是適合你的。還是想再說(shuō)一下,遇到問(wèn)題不要搜到答案就感覺(jué)萬(wàn)事大吉了,一定要弄清楚到底哪里出了問(wèn)題。

感謝前進(jìn)的路上一直有你們,簡(jiǎn)書上有愛(ài)的你們。

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

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

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