How to make UINavigationBar Transparent in IOS 8?

后端 未结 6 1210
醉话见心
醉话见心 2021-01-05 14:09

I have tried a lot to make UINavigationBar transparent. But I failed making it so.The image which I set was transparent. Here is my code . Any help ? Thanks in advance.

相关标签:
6条回答
  • 2021-01-05 14:37

    @Sushil it seems like he has it. In my app, I use

    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    

    Instead of alloc init, is the only difference.

    0 讨论(0)
  • 2021-01-05 14:40

    try this

       [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                             forBarMetrics:UIBarMetricsDefault];
        self.navigationController.navigationBar.shadowImage = [UIImage new];
        self.navigationController.navigationBar.translucent = YES;
        self.navigationController.view.backgroundColor = [UIColor clearColor];
    

    I hope the above code helps.

    0 讨论(0)
  • 2021-01-05 14:44

    try this

     [rootNavC.navigationBar setBackgroundImage:[UIImage imageNamed:@"NAV_BG_iphone.png"] forBarMetrics:UIBarMetricsDefault];
      rootNavC.navigationBar.translucent = YES;
      [[rootNavC.UINavigationBar appearance] setBarTintColor:[UIColor clearColor]];
       //rootNavC.navigationBar.backgroundColor = [UIColor clearColor];
        [[UINavigationBar appearance] setTitleTextAttributes:@{
                           UITextAttributeTextColor : [UIColor whiteColor],
                     UITextAttributeTextShadowColor : [UIColor clearColor],
                    UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],
                                UITextAttributeFont : [UIFont fontWithName:@"pastel" size:20]
       }];
    
    0 讨论(0)
  • 2021-01-05 14:46

    Thanks all. The thing is that I am adding this line in my view controller:

    if (IS_OS_7_OR_LATER)
    {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = NO;
        self.automaticallyAdjustsScrollViewInsets = NO;
    }
    

    that is why the code is not working. When I remove the line

    self.edgesForExtendedLayout = UIRectEdgeNone;
    

    the code works.

    0 讨论(0)
  • 2021-01-05 14:57

    Try adding this code. It worked for me in iOS 8.

    [self.navigationController.navigationBar setTranslucent:YES];
    [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];
    self.navigationController.navigationBar.backgroundColor = [UIColor clearColor]
    

    Using this code, you don't even need to add your transparent UIImage. Update here if it helps you.

    0 讨论(0)
  • 2021-01-05 14:57

    This works on IOS 7 and +

    [self.navigationController.navigationBar setTranslucent:YES];
    self.navigationController.navigationBar.shadowImage = [UIImage new];
    self.navigationController.view.backgroundColor = [UIColor clearColor];
    [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];
    self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];
    
    0 讨论(0)
提交回复
热议问题