首页 > 代码库 > 动态 改变导航栏透明度

动态 改变导航栏透明度

 

#pragma mark - 实现代理方法  UINavigationBarDelegate 改变导航栏的颜色等功能

 

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated

{

    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

    UIImage *image = [UIImage imageNamed:@"128"];

    [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

    UIView *view = self.navigationController.navigationBar.subviews[0];

    

    if (_tableView.contentOffset.y <= - 64) {

        

        self.navigationController.navigationBar.translucent = YES;

        view.alpha = 0;

    } else if(_tableView.contentOffset.y > - 64 && _tableView.contentOffset.y <= 0) {

    

        self.navigationController.navigationBar.translucent = YES;

            view.alpha = (64 - fabs(_tableView.contentOffset.y)) / 200.0f;//绝对值

 

    } else {

        

        view.alpha = (_tableView.contentOffset.y + 128) / 200.0f;

        if (view.alpha >= 1) {

            self.navigationController.navigationBar.translucent = NO;

        }

        

    }

    DLog(@"%f", _tableView.contentOffset.y);

    

}

 

动态 改变导航栏透明度