【问题标题】:iOS 7 Changing UINavigationBar titleView alphaiOS 7 更改 UINavigationBar titleView alpha
【发布时间】:2014-01-19 07:18:02
【问题描述】:
所以我使用的是 iOS7 的 UINavigationBar 组件,而不是 UINavigationController 本身。当我使用自定义导航控制器推送新视图时,我想将标题的 alpha 更改为 0.0,然后再改回来,但我似乎无法让它工作。
我正在尝试这样做
vc1.navBar.topItem.titleView.alpha = 0.1;
好像没什么效果。我在这里遗漏了什么,有没有正确的方法来实现这一点?
【问题讨论】:
标签:
ios
cocoa-touch
ios7
uinavigationbar
【解决方案1】:
我会这样做:
-
在推送的 viewController 的 viewWillAppear: 中,我会使用以下方法将其 alpha 设置为 0:
[self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[[UIColor whiteColor] colorWithAlphaComponent:0],
NSForegroundColorAttributeName,
[UIFont fontWithName:@"Helvetica-Bold" size:16.0],
NSFontAttributeName,
nil]];
-
在 viewDidAppear: 中,将其 alpha 设置回 1。在这里,您实际上不需要将其 alpha 设置为 1,只需将其设置为纯 [UIColor whiteColor] 即可。
您可以做的另一件事是,在 2 个方法中切换 HIDDEN 属性。
设置 titleView 的 alpha 在我的情况下不起作用,所以我使用了上面的代码。它隐藏了标题。如果您希望后退按钮具有类似的效果,您可以使用 self.navigationItem.backBarButtonItem.customView.alpha = 设置后退按钮的 alpha
【解决方案2】:
您可以在viewWillAppear中设置titleViewhidden
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationItem.titleView.hidden = YES;
}
在viewDidAppear 之前,您无法设置titleView alpha
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationItem.titleView.alpha = 0.5f;
}
【解决方案3】:
你可以试试这个——
[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]];
如果您只想更改标题属性。或者这个来改变bar alpha:
[self.navigationBar setBarTintColor:[UIColor colorWithRed:125/255.0 green:178/255.0 blue:15/255.0 alpha:0.2]];