如何更改所选栏按钮的颜色?

时间:2011-07-29 07:28:55

标签: xcode4 interface-builder uibarbuttonitem

我有一个带有以下按钮的简单黑色导航栏

enter image description here

按下按钮时,按钮的颜色与导航栏的颜色相同,且渐变相同。但我希望它看起来像这样:

enter image description here

所以这有一个简单的黑色背景颜色。知道如何使用界面构建器实现此目的吗?或者这需要一种编程方式吗?

3 个答案:

答案 0 :(得分:2)

是的,它需要一些编程..但如果你想用IB做这个,那么你可以使用一种肮脏的方式.. 您可以将图像用于所有这些控件..(这就是为什么这是脏的)如果你有psd你设计然后你可以切片每个元素。就像您可以切割工具栏背景(黑条)并将其作为图像放置在特定位置。然后你可以在它上面添加一个按钮并设置它的图像(正常和突出显示状态)

我会尝试通过编码来实现,如果我找到了一种方法,那么我会在这里发布..

答案 1 :(得分:2)

这很容易,首先你需要这样做。转到界面构建器。请按照以下步骤进行操作 -

  1. 选择UIButton元素。打开右侧边栏,提供有关按钮的属性。选择按钮的TypeCustom
  2. 现在在那里,寻找state config。按钮的各种状态 - 默认,突出显示,选中,禁用。在image中根据需要定义各种不同的图像。基本上选择图像,以满足您想要的效果。
  3. 现在,这会根据按钮的状态自动处理按钮元素外观的变化。
  4. 但有时,您会希望通过代码手动更改状态。这可以这样做 - [yourButton setSelected:BOOL][yourButton setHighlighted:BOOL][yourButton setEnabled:BOOL]
  5. 希望这会有所帮助......

    更新:查看屏幕截图 - 此镜头显示已定义状态,'默认','突出显示'...这定义了状态。您可以为每种状态定义图像。再次,希望这有助于......

    enter image description here

答案 2 :(得分:1)

除了在iOS 4中指定文本或灰度图像以及UIBarButtonItemStyle的{​​{1}}之外,唯一支持控制外观的方法是将其设计为视图(可能是{{1的子类)使用UIBarButtonItem将该视图包装在UIButton中。

或者您可以完全跳过使用UIBarButtonItem,只需将initWithCustomView:放在UIToolbar上即可获得所需的视觉效果。