如图所示,希望能做成:下滑tableview 渐显navigationbar的背景色navigationbar.alpha设置根本不起作用。

解决方案 »

  1.   

    回楼主,可以自定义一个UINavigationBar, 重写-initWithFrame:方法,将私有类_UINavigationBarBackground从navigationBar中删除,就能实现楼主想要的效果,且不影响navigationBar的正常功能,代码如下:- (instancetype)initWithFrame:(CGRect)frame
    {
    self = [super initWithFrame:frame];
    if (self) {
    for (UIView *view in self.subviews) {
    if ([view isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) {
    [view removeFromSuperview];
    }
    }
    }
    return self;
    }
      

  2.   

    去掉_UINavigationBarBackground的遮盖效果后,楼主想怎么改变导航条的外观都轻而易举了,希望对您有所帮助。
      

  3.   

    实现UINavigationControllerDelegate,也不起作用吗
    self.navigationController.delegate =self;
    -(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
        if (viewController == self) {
             self.navigationController.navigationBar.alpha = 0.300;
        }else{
            self.navigationController.navigationBar.alpha =1;
        }
    }
      

  4.   

    设置背景色为 clearColor