iOS導(dǎo)航控制器在push/pop時(shí)出現(xiàn)黑影的解決辦法

自己在項(xiàng)目中遇到了如題所述的坑,后來發(fā)現(xiàn)其實(shí)就是tabBar控制器沒有背景色(也就是黑色)所致,參考了如下的解決方案:

轉(zhuǎn)自<a >解決 iOS View Controller Push/Pop 時(shí)的黑影</a>

  • iOS 自 7.x 某個(gè)版本以后,存在一個(gè) Push/Pop ViewController 時(shí)右上角會(huì)有奇怪黑影冒出的問題。
    這個(gè)問題由來已久,直到昨天有個(gè)朋友向我反應(yīng)時(shí)我才重新注意起來。我以為這是 iOS 的 Bug,無法解決,但后來另一個(gè)朋友提供了一個(gè)解決方案,我才發(fā)現(xiàn)這是可以解決的,于是決定寫篇文章記錄下。
    首先來看看這是什么樣的一個(gè)問題吧,這個(gè)問題在奇點(diǎn)微博客戶端上也是存在的。簡(jiǎn)單的描述就是,在列表頁中點(diǎn)擊一條微博,進(jìn)入細(xì)節(jié)頁,或者從細(xì)節(jié)頁右滑回到上頁,剛剛觸發(fā)滑動(dòng)的那一瞬間,右上角會(huì)有黑影:
    我在寫這篇文章時(shí)突然發(fā)現(xiàn)盡管我看的到這個(gè)黑影,但是截圖的時(shí)候卻消失了。于是就用紅色框來描一下好了。你們可以自己親自試試。

  • 那么如何解決這個(gè)問題呢?
    實(shí)際上很簡(jiǎn)單,如果這個(gè) ViewController 是在 TabBarViewController 的 NavigationViewController 上 Push/Pop 的,那么只需要把 TabBarViewController 的 View 設(shè)置一下白色背景就可以了。
    建立一個(gè) UITabBarController 的子類,然后我重載 viewDidLoad 即可:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 為了避免push時(shí)導(dǎo)航條出現(xiàn)的黑塊
    self.view.backgroundColor = [UIColor whiteColor];
 }
  • 但是到這里為止,只解決了 50%,還有另外一種情況沒有解決,那就是如果你 present 了一個(gè) NavigationViewController + ViewController 后,在這個(gè)下面再進(jìn)行 Pop/Push 也是會(huì)有黑影的情況下。這種情況如何解決呢?
    類似的,設(shè)置一下 self.navigationController?.view.backgroundColor = UIColor.whiteColor() 即可。
    突然想到我昨天吐槽的iOS 的一個(gè) Bug:
  • iOS 的 UITableViewCell 有一個(gè)很嚴(yán)重的問題,是 7.x 某個(gè)版本以后引起的,如果給 detailTextLabel.text 設(shè)置 nil 或者 “”,再設(shè)置具體的 text 后有時(shí)會(huì)顯示不出來,但 Tap 一下能出來。具體的解決辦法是,不要設(shè)置 nil 或 “”,設(shè)置 “ ” (中間有空格)。真是讓人吐血的 Workaround。

這個(gè)問題也是類似,在某個(gè) 7.x 開始引入的。iOS 這樣細(xì)微的又不致命的 Bug 很多,真希望能到 iOS 9 全部解決掉…

嗯,就是這樣。

最后編輯于
?著作權(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)容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,705評(píng)論 8 183
  • 就算用盡全身的氣力,也無法挽回 這凄凄慘慘,說出了誰的怨?誰的念? 總有許多事,需要你一個(gè)人扛。別畏懼孤獨(dú),它能幫...
    江子雅閱讀 465評(píng)論 2 1
  • 你衣角泛起耀眼光芒 是對(duì)我說 忘了你愛我時(shí)的模樣 出眾的像是化了妝的乞丐 掙扎著我像一個(gè)喜劇之王 我把所有悲劇 一...
    叫我無常閱讀 234評(píng)論 0 0
  • 11.4 閘北區(qū)風(fēng)華中學(xué) 講道理讓我去的時(shí)候我真的是拒絕的好嗎?因?yàn)檎媸呛芫脹]有好好練過球了。平時(shí)一直在用直拍劃水...
    習(xí)習(xí)晨風(fēng)閱讀 656評(píng)論 0 0

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