天天看點

iOS10 NavigationController push的時候NavigationBar閃現白條

navigationBar 下面有一個1px的線,為了隐藏掉這個線讓navigationBar和下面的連成一體

// color
    self.navigationController.navigationBar.barTintColor = [ThemeManager naviColor];
    // clear shadow
    self.navigationController.navigationBar.shadowImage = [UIImage new];
    // hide i px buttom line
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                                                 forBarPosition:UIBarPositionAny
                                                     barMetrics:UIBarMetricsDefault];
    
    self.navigationController.navigationBar.translucent = NO;
           

之後到了iOS 10。 還是原來的APP,還是原來的代碼,push的時候NavigationBar閃現白條。

問題是這句話

[self.navigationController.navigationBarsetBackgroundImage:[UIImagenew]

                                                 forBarPosition:UIBarPositionAny

                                                     barMetrics:UIBarMetricsDefault];

這樣改的

// color
    self.navigationController.navigationBar.barTintColor = [ThemeManager naviColor];
    // clear shadow
    self.navigationController.navigationBar.shadowImage = [UIImage new];
    if (![NSProcessInfo.processInfo isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){9,4,0}]) {
        // hide i px buttom line
        [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                                                     forBarPosition:UIBarPositionAny
                                                         barMetrics:UIBarMetricsDefault];
    }
    
    self.navigationController.navigationBar.translucent = NO;