要解決問題职恳,首先要知道問題發(fā)生在哪里,這個(gè)問題是當(dāng)初剛工作在項(xiàng)目過階段評(píng)審的時(shí)候被設(shè)計(jì)提出來(lái)的蛹屿,他說(shuō)你看這導(dǎo)航欄下面怎么會(huì)有一像素的黑線屁奏,當(dāng)時(shí)真的是愣住了,甚至認(rèn)為這是一個(gè)蘋果的bug〈砀海現(xiàn)在想想真的好幼稚坟瓢。
首先我們看一下蘋果官方給出的解釋:
現(xiàn)在讓我這個(gè)英語(yǔ)半吊子來(lái)翻譯一下勇边,他的意思就是說(shuō)如果你不調(diào)用這個(gè)方法設(shè)置一張背景圖片的話,那我就給你默認(rèn)一張折联,然后同時(shí)還有一張陰影圖片被默認(rèn)設(shè)置上去粒褒,好吧,這就是導(dǎo)航欄上1px黑線的由來(lái)诚镰,沒錯(cuò)奕坟,就是這個(gè)蘋果贈(zèng)送的shadowImage。
相信看到這個(gè)解釋即使不繼續(xù)說(shuō)下去有些同學(xué)也知道解決辦法了吧清笨,沒錯(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á)到想要的效果,但是感覺這個(gè)方法太暴力了炊甲,不是很推薦泥彤。
差不多就是這些了,應(yīng)該總有一款是適合你的卿啡。還是想再說(shuō)一下吟吝,遇到問題不要搜到答案就感覺萬(wàn)事大吉了,一定要弄清楚到底哪里出了問題颈娜。
感謝前進(jìn)的路上一直有你們剑逃,簡(jiǎn)書上有愛的你們。