是否有一种简单的方法可以在不使用UIImage作为背景的情况下更改UIBarButtonItem的文本颜色?
默认情况下,文字始终为白色。我想把它弄成黑色。
答案 0 :(得分:6)
感谢IOS 5.0,您不需要使用图像。您可以使用以下代码设置各种文本属性。
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle:@"Title" style:UIBarButtonItemStyleBordered target:nil action:nil];
if ([button respondsToSelector:@selector(setTitleTextAttributes:forState:)]) {
NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
kTextColor,UITextAttributeTextColor,
nil];
[[UIBarButtonItem appearance] setTitleTextAttributes:textAttributes
forState:UIControlStateNormal];
}
答案 1 :(得分:1)
我宁愿在UIBarButtonItem中使用UIButton并自定义它。
这是自定义UIButton的自定义图形示例。这个想法保持与UIBarButtonItem相同的使用initWithCustomView
,以便在其中添加其他可以轻松定制的内容。
self.closeButton = [UIButton buttonWithType:UIButtonTypeCustom];
[closeButton setImage:[UIImage imageNamed:@"webview_close_button_normal.png"] forState:UIControlStateNormal];
[closeButton setImage:[UIImage imageNamed:@"webview_close_button_pressed.png"] forState:UIControlStateHighlighted];
closeButton.frame = CGRectMake(0, 0, 121, 36);
[closeButton addTarget:self action:@selector(closeAdViewController) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * aBarButtonAdClose = [[[UIBarButtonItem alloc] initWithCustomView:closeButton] autorelease];
答案 2 :(得分:1)
您可以使用
设置自定义视图 [[UIBarButtonItem alloc] - (id)initWithCustomView:(UIView *)customView]
答案 3 :(得分:0)
你问题的直接答案是否定的。
您不能通过设置其中一个属性来简单地更改UIBarButtonItem
的颜色。您可以设置包含tintColor
的{{1}}或UIToolBar
的{{1}}属性,但这也会影响工具栏本身的颜色,并且不会提供太多定制
如果这对你不起作用,那么自定义视图就像其他答案所示是个好主意。
祝你好运!