iOS 7 Changing UINavigationBar titleView alpha

无人久伴 提交于 2019-12-01 08:20:23

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 =

You can set the titleView hidden in viewWillAppear

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.navigationItem.titleView.hidden = YES;
}

You can't set the titleView alpha until viewDidAppear

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    self.navigationItem.titleView.alpha = 0.5f;
}

You can try this one -

[self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                                    [UIColor colorWithRed:125/255.0 green:178/255.0 blue:15/255.0 alpha:0.2],
                                                                    NSForegroundColorAttributeName,
                                                                    [UIFont fontWithName:@"Helvetica-Bold" size:16.0],
                                                                    NSFontAttributeName,
                                                                     nil]];

If you just want to change the title attributes. Or this one to change bar alpha :

[self.navigationBar setBarTintColor:[UIColor colorWithRed:125/255.0 green:178/255.0 blue:15/255.0 alpha:0.2]];
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!