Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 7 Changing UINavigationBar titleView alpha

So I am using the UINavigationBar component of iOS7, but not the UINavigationController itself. When I push a new view with my custom navigation controller, I want to change the title's alpha to 0.0 and then back, but I can't seem to get it work.

I am trying to do this

vc1.navBar.topItem.titleView.alpha = 0.1;

It doesn't seem to have any effect. Am I missing something here, is there a correct way to achieve this?

like image 230
Samuli Lehtonen Avatar asked Dec 20 '22 19:12

Samuli Lehtonen


1 Answers

This is how I would do it:

  • In viewWillAppear: of the pushed viewController, I would set it the alpha to 0 using:

    [self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                                [[UIColor whiteColor] colorWithAlphaComponent:0],
                                                                NSForegroundColorAttributeName,
                                                                [UIFont fontWithName:@"Helvetica-Bold" size:16.0],
                                                                NSFontAttributeName,
                                                                 nil]];
    
  • In viewDidAppear:, set it's alpha back to 1. Here you don't really need to set it's alpha to 1, just setting it to plain [UIColor whiteColor] will do the trick.

One other thing you could do is, toggle HIDDEN property in the 2 methods.

Setting the alpha of the titleView did not work in my case so I used the above code. It hides the title. In case you want a similar effect with the back button, you set the alpha of the backButton using self.navigationItem.backBarButtonItem.customView.alpha =

like image 71
n00bProgrammer Avatar answered Jan 04 '23 05:01

n00bProgrammer