以编程方式设置 UIBarButtonItem 填充颜色?

Posted

技术标签:

【中文标题】以编程方式设置 UIBarButtonItem 填充颜色?【英文标题】:Programmatically set UIBarButtonItem fill color? 【发布时间】:2015-05-17 15:03:48 【问题描述】:

我在 UIToolbar 中有一组来自 png 文件的 UIBarButtonItems。

当用户点击一个图标时,我希望该图标填充颜色以指示状态更改。

是否可以使用一组图像(可能通过以编程方式更改某些属性)来做到这一点,还是我必须需要两组图像(每个状态都打开)?

【问题讨论】:

【参考方案1】:

首先确保您的UIImage 的renderingMode 是UIImageRenderingModeAlwaysTemplate

如果您使用 initWithImage 更改 UIBarButtonItem 的 tintColor。

虽然 UIBarButtonItem 不是视图,但它的 tintColor 属性的行为 和 UIView 一样。

否则,如果您使用 UIImageView initWithCustomView 然后更改 imageView 的 tintColor 也可能会起作用

否则,您可以在每次点击后将Items: animated:NO 设置为UIToolBar,这可能不太优雅

【讨论】:

【参考方案2】:

这是非常直接的。您只需要在代码中执行以下操作:

imgView.image = [imgView.image
    imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
imgView.tintColor = [UIColor someColor];

【讨论】:

以上是关于以编程方式设置 UIBarButtonItem 填充颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将自定义图像设置为 UIBarButtonItem

Swift:UIBarButtonItem 以编程方式设置可访问性标识符

在哪里以编程方式设置 TableViewController 的 UIBarButtonItem 和单元格“segue”

以编程方式添加UIBarButtonItem

如何以编程方式添加 UIBarButtonItem?

以编程方式创建和显示 UIBarButtonItem 的正确方法是啥?