神秘人 _UIBarBackground

最近又趟了個坑竹伸,做了個頁面泥栖,大概長下面這樣,在主程序的堆棧里好好的勋篓,在一個新present出來的堆棧里吧享,就成了圖2的樣子。


先不說上面空出來一塊的問題譬嚣,頂部這個白色刺眼的navigationBar钢颂,很明顯是navigationBar的背景顏色成了白色,可我并沒有設置過顏色啊拜银。em…先來看看視圖層級殊鞭,發(fā)現(xiàn)navigationBar的subview里有一個純白色的_UIBarBackground類型的view遭垛,看class就知道是蘋果內(nèi)部的API,網(wǎng)上查了查操灿,還真有人說同樣的問題锯仪,配合出現(xiàn)的還有一個屬性:translucent,好了趾盐,開始查文檔庶喜。

translucent,文檔里大概這么寫的救鲤,如果把translucent設為NO久窟,則navigationBar的背景不管設置了什么背景圖,navigationBar都會變成完全不透明的(毛玻璃本缠、半透明背景都會有影響)斥扛,我的navigationBar就是不透明的,這個屬性必須是NO丹锹。嗯稀颁,設置好參數(shù)和背景顏色,運行卷仑,navigationBar還還還還還是白的峻村。。

哪里出問題了呢锡凝?文檔里提到會對背景"圖"有影響粘昨,看來背景顏色出了問題他不管?好吧窜锯,我用這個顏色生成了一張image张肾,當做背景圖片,還真好了锚扎。問題解決~
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithHexString:@"#3B3B3B"]] forBarMetrics:UIBarMetricsDefault];

只研究到這兒肯定不是我的性格吞瞪,試了下用一個半透明的顏色生成圖片做背景,就可以得到一個半透明背景的navigationBar驾孔。創(chuàng)建一個UIVisualEffectView塞到navigationBar上芍秆,也可以得到一個毛玻璃的navigationBar已亥。其實根本沒有設置translucent吼畏,文檔里也說如果開發(fā)者沒有設置,UIKit會根據(jù)設置背景圖的不同查牌,自動推斷translucent的值对碌。研究到這里好像跟_UIBarBackground荆虱,translucent都沒什么關系了。總結就一句話:不要用backgroundColor來改變navigationBar的背景顏色,用backgroundImage怀读。THE END

再附帶上兩個其他的坑:
1诉位,篇頭提到的view整體偏移的問題,用到了這么個屬性
self.extendedLayoutIncludesOpaqueBars = YES;
2菜枷,后來開發(fā)中又遇到了navigationBar整體隱藏的問題苍糠,寫代碼怎么也顯示不出來,原因是最開始創(chuàng)建navigationController的時候調用了這么一句
navigationController.navigationBar.hidden = YES;
換成這樣就好了
[navigationController setNavigationBarHidden:YES animated:NO];

剛開始查問題的時候看到網(wǎng)上幾篇博文在講怎么把這個_UIBarBackground隱藏掉犁跪,個人不建議這么做椿息,既然蘋果沒有把他暴露出來,你就不確定他的navigationBar會不會還有別的層級坷衍,建議盡量還是用蘋果原生的API來解決問題,這也是我寫這篇文章的原因条舔。
UIKit說到底還是一個底層架構枫耳,從最早的iOS適配到現(xiàn)在的iOS12,說里面有坑我是相信的孟抗,但我也相信蘋果在發(fā)布前肯定做過嚴格的測試迁杨。如果真的真的遇到原生API解決不了的問題,我猜大部分出在產(chǎn)品需求上吧[偷笑]凄硼。好了铅协,今天到這結束,END

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末摊沉,一起剝皮案震驚了整個濱河市狐史,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌说墨,老刑警劉巖骏全,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異尼斧,居然都是意外死亡姜贡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門棺棵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來楼咳,“玉大人,你說我怎么就攤上這事烛恤∧噶” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵棒动,是天一觀的道長糙申。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么柜裸? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任缕陕,我火速辦了婚禮,結果婚禮上疙挺,老公的妹妹穿的比我還像新娘扛邑。我一直安慰自己,他們只是感情好铐然,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布蔬崩。 她就那樣靜靜地躺著,像睡著了一般搀暑。 火紅的嫁衣襯著肌膚如雪沥阳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天自点,我揣著相機與錄音桐罕,去河邊找鬼。 笑死桂敛,一個胖子當著我的面吹牛功炮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播术唬,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼薪伏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了粗仓?” 一聲冷哼從身側響起嫁怀,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎潦牛,沒想到半個月后眶掌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡巴碗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年朴爬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橡淆。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡召噩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逸爵,到底是詐尸還是另有隱情具滴,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布师倔,位于F島的核電站构韵,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疲恢,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一凶朗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧显拳,春花似錦棚愤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至揍移,卻和暖如春次和,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背那伐。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工斯够, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喧锦。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像抓督,于是被迫代替她去往敵國和親燃少。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容