0

我想要一个带有自定义图像和蓝色文本的 UIBarButtonItem。我首先创建了一个带有文本、字体颜色和图像的 UIButton,然后为 UIBarButtonItem 设置了一个自定义视图。

问题是当我禁用 UIBarButtonItem 时,文本会变回白色。我不知道为什么。

UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom];
[customButton setBackgroundImage:[UIImage imageNamed:@"images/ButtonHeader"] forState:UIControlStateNormal];
[customButton setTitle:myDynamicText forState:UIControlStateNormal];
[customButton setFrame:CGRectMake(0.0f, 0.0f, 70.0f, 44.0f)];
[customButton addTarget:myTarget action:myAction forControlEvents:UIControlEventTouchUpInside];
[customButton.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:12.0f]];
[customButton.titleLabel setTextColor:[UIColor blueColor]];

UIBarButtonItem *customBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:customButton];

self.navigationBar.rightBarButtonItem = customBarButtonItem;
self.navigationBar.rightBarButtonItem.enabled = NO;

我真正想做的是为启用和禁用状态设置不同的文本颜色,但是如果有人能告诉我为什么启用=否时文本变成白色,以及如何阻止它,我可以自己解决这个问题。

4

1 回答 1

3

您不应该通过获取这样的标签来设置字体颜色。您需要在按钮上配置它

[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];

UIControlStateNormal将设置默认值,但随后您可以更改所有不同状态的颜色。这些状态的列表可在UIControl 类参考的底部找到Control State

于 2012-09-12T13:36:54.233 回答