navifationBar全透明设置问题

大家有没有遇到过这样的问题,我要设置导航栏全透明,在视图控制器的viewWillAppear方法里面设置如下:
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

[self.navigationController.navigationBar setShadowImage:[UIImage new]];
self.navigationController.navigationBar.translucent = YES;
for (UIView *imageView in self.navigationController.navigationBar.subviews) {
    if ([NSStringFromClass([imageView class]) isEqualToString:@"_UIBarBackGround"]) {
        imageView.alpha = 0.f;
    }
}

但是出现了如附件图那样的显示,貌似我对“_UIBarBackGround”这个View的处理没起到作用!! 请大家指教一下,不胜感激!!
图片描述

图片描述

阅读 2.8k
1 个回答

tableView下移了64pt. 内容是无法在navigationBar下面显示的.
你的tableViewframe.origin是(0, 64). 设为(0,0)就可以了.
再设置一下contentInset, _tableView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);

self.automaticallyAdjustsScrollViewInsets = NO;
self.tableView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进