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

Posted

技术标签:

【中文标题】如何以编程方式将自定义图像设置为 UIBarButtonItem【英文标题】:How to set a Custom image programmatically to and UIBarButtonItem 【发布时间】:2019-04-04 22:09:42 【问题描述】:

我在将自定义图像分配给 UIBarButtonItem 时遇到问题,主要问题是创建按钮时图像显示为白色方块。 这是我的代码:

fileprivate func configureNavigationBar() 
        tabBarController?.navigationItem.title = lot.name
        let exportImg: UIImage = UIImage(named: "action.png")!
        let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(showCreationView(_:)))
        let exportByEmail = UIBarButtonItem(image: exportImg, style: .done, target: self, action: #selector(exportDataByEmail(_:)))
        tabBarController?.navigationItem.rightBarButtonItems = [exportByEmail,addButton]
    

问题在于 exportByEmail,图像位于从我的资产添加的变量 exportImg 中:

从我的代码中得到的结果:

【问题讨论】:

【参考方案1】:

您的图片背景必须是透明的,并且您可以将图片始终设置为原始渲染模式,以保持原样显示,如下所示

let exportByEmail = UIBarButtonItem(image: exportImg.withRenderingMode(.alwaysOriginal), style: .done, target: self, action: #selector(exportDataByEmail(_:)))

【讨论】:

以上是关于如何以编程方式将自定义图像设置为 UIBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建一个视图,将框架设置为超级视图的框架?

CANON SDK 将自定义白平衡设置为保存的 JPG 图像

如何以编程方式将自定义 uiview 添加到视图控制器 SWIFT

如何以编程方式将自定义 Java 视图类加载到 RelativeLayout

如何以编程方式将自定义 UIView 添加到 UIScrollView 之上的 Stackview?

如何将自定义边边框设置为图像并使其显示在其他图像上?