如何在iOS 7+上更改UIBarButtonItem的背景颜色?

时间:2014-10-13 21:12:20

标签: ios uibarbuttonitem

我想通过更改其背景颜色来指示打开或关闭特定UIBarButtonItem。 Mobile Safari使用此功能来指示隐私浏览是打开还是关闭:

Off On

我怎么能这样做,因为backgroundColor上没有UIBarButtonItem属性?

2 个答案:

答案 0 :(得分:20)

创建UIButton并将其用作UIBarButtonItem的自定义视图。然后,在按钮的图层上设置backgroundColor

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"Test"];
button.layer.backgroundColor = [UIColor redColor].CGColor;
button.layer.cornerRadius = 4.0;

UIBarButtonItem* buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.toolbarItems = @[buttonItem];

答案 1 :(得分:1)

您只需使用两张图片即可。一个用于选择,一个用于未选择

- (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics

以上功能可以帮助您完成此操作