如何解决 UIBarButtonItem 的色调问题?

Posted

技术标签:

【中文标题】如何解决 UIBarButtonItem 的色调问题?【英文标题】:How fix my problem with tint color for UIBarButtomItem? 【发布时间】:2020-06-06 23:13:03 【问题描述】:

我尝试在导航栏上创建菜单按钮,我只想设置没有文字的图像。但是如果我尝试将图像设置为“barButtomItem.image”,那么颜色会自动设置为蓝色,我可以通过某种方式修复它吗?

blue color for button

var menuButton: UIBarButtonItem 
        let button = UIBarButtonItem()
        button.image = UIImage(named: "menubtn")
        return button


rootVC.navigationItem.leftBarButtonItem = menuButton

好的,我可以为按钮设置 tintColor

var menuButton: UIBarButtonItem 
    let button = UIBarButtonItem()
    button.image = UIImage(named: "menubtn")
    button.tintColor = UIColor(named: "myGreenColor")
    return button
    

rootVC.navigationItem.leftBarButtonItem = menuButton

但阴影的颜色也会改变

green shadow

我可以为按钮的阴影设置黑色吗?或者是否有可能以某种方式禁用自动为图像分配颜色的功能?

在我看来,如果您向 BarButtonItem 添加一个按钮并为其分配一个图像,这个问题也可以解决,我尝试使用情节提要执行此操作,但我不知道如何使用代码执行此操作

【问题讨论】:

【参考方案1】:

试试这个?不过我还没有测试过。

    var menuButton: UIBarButtonItem 
        let button = UIButton(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
        button.setImage(UIImage(named: "menubtn"), for: .normal)
        return UIBarButtonItem(customView: button)
    
    rootVC.navigationItem.leftBarButtonItem = menuButton

【讨论】:

以上是关于如何解决 UIBarButtonItem 的色调问题?的主要内容,如果未能解决你的问题,请参考以下文章

如何颜色选择 UIBarButtonItem tintColor

UIBarButtonItem 标题文本始终是全局色调颜色

如何将 UIBarButtonItem tintcolor 设置为非默认 UIColor

更改 UIBarButtonItem 的 UIToolbar 阴影颜色

为 Bar 按钮项目和色调添加 Bg

使用 UIAppearance API 自定义 UIBarButtonSystemItem 的色调颜色