有没有办法将self.navigationItem.prompt
颜色设置为白色?目前它是黑色。
这就是我现在设置导航栏颜色的方式:
// Set top navigation bar.
UINavigationBar *bar = [navController navigationBar];
[bar setTintColor:[UIColor colorWithRed:180.0/255.0 green:25.0/255.0 blue:34.0/255.0 alpha:1]];
UIImageView *navBar = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[navBar release];
..这就是我设置navigationItem.prompt
:
self.navigationItem.prompt = @"Tap image for more options.";
答案 0 :(得分:7)
现在可以在iOS 5或更高版本中使用。试试这段代码。
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], UITextAttributeTextColor, nil]];
答案 1 :(得分:3)
我担心提示颜色是硬编码而不是可自定义的。
我设法使用以下(棘手的)黑客自定义提示,替换提示符:
navigationItem.prompt = @""
以强制navigationBar显示空提示navigationItem.titleView
:
UILabel
或任何你想要替换标题的内容,在里面作为一个子视图来替换提示符:
.clipsToBounds = NO
,以便正确绘制自定义提示我通过用{em>覆盖UIViewController.setTitle:
来覆盖所有我的控制器(它不能正常工作/构建,它是一个更复杂的代码的快速提取,但它显示了逻辑):
- (void)setTitle:(NSString *)title {
[super setTitle:title];
UILabel *titleLabel = ... build the titleLabel
titleLabel.text = title;
if (self.navigationItem.prompt) {
UILabel *promptLabel = ... build the promptLabel
promptLabel.text = self.navigationItem.prompt;
self.navigationItem.prompt = @"";
promptLabel.centerX = titleLabel.width/2;
promptLabel.top = -31;
[titleLabel addSubview:promptLabel];
titleLabel.clipsToBounds = NO;
}
self.navigationItem.titleView = titleLabel;
}
答案 2 :(得分:1)
尝试这种方式。
navigationhBar.tintColor = [UIColor colorWithRed:0.4039216041564941 green:0.6470588445663452 blue:0.062745101749897 alpha:1];
答案 3 :(得分:1)
在iOs 5中,我改变了UINavigationBar的外观。您可以使用以下代码更改提示颜色
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor], UITextAttributeTextColor, [UIColor colorWithRed:10 green:20 blue:30 alpha:1.0f], UITextAttributeTextShadowColor, [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], UITextAttributeTextShadowOffset, nil]];
我以前是随机数&颜色,您可以通过自己的选择自定义颜色。希望它会有所帮助。
答案 4 :(得分:-3)
夫特:
self.navigationController?.navigationBar.titleTextAttributes =
[NSForegroundColorAttributeName : UIColor.white]
self.navigationController?.navigationBar.barTintColor = UIColor.red