iOS 自 7.x 某個版本以后,存在一個 Push/Pop ViewController 時右上角會有奇怪黑影冒出的問題。
這個問題由來已久,在做兔兔助手項目時就曾遇到過,現(xiàn)在記錄下,不知道現(xiàn)在iOS9還有沒有出現(xiàn)。
首先來看看這是什么樣的一個問題吧,這個問題在兔兔助手正版客戶端上也是存在的。簡單的描述就是,在工具箱頁中點擊賬戶,進入詳情頁,或者從詳情頁右滑回到上頁,剛剛觸發(fā)滑動的那一瞬間,右上角會有黑影:
那么如何解決這個問題呢?
實際上很簡單,如果這個 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的,那么只需要把 TabBarViewController 的 View 設置一下白色背景就可以了。
建立一個 UITabBarController 的子類,然后我重載 viewDidLoad 即可:
- (void)viewDidLoad {
[super viewDidLoad];
// 修復 Push到下一級右上角可惡的黑條
self.view.backgroundColor = [UIColor whiteColor];
}
但是到這里為止,只解決了 50%,還有另外一種情況沒有解決,那就是如果你 present 了一個 NavigationController + ViewController 后,在這個下面再進行 Pop/Push 也是會有黑影的情況下。這種情況如何解決呢?
類似的,設置一下 self.navigationController.view.backgroundColor = [UIColor whiteColor]; 即可。
不過,最后在stackoverflow上看到有人提供的解決方案,是在AppDelegate.m里面,didFinishLaunchingWithOptions方法里面加一句
self.window.backgroundColor = [UIColor whiteColor];
直接把window的背景設為白色,也解決了問題,親測有效。