要解決問(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)在想想真的好幼稚。
首先我們看一下蘋果官方給出的解釋:

現(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。

相信看到這個(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)的你們。