仅在 swift 中更改后退栏按钮项的颜色

Posted

技术标签:

【中文标题】仅在 swift 中更改后退栏按钮项的颜色【英文标题】:Change colour of back bar button item only in swift 【发布时间】:2019-12-09 21:21:09 【问题描述】:

我正在尝试更改快速导航栏中后退栏按钮项的颜色。

最终我的目标是为导航栏制作一些内容:

这是我当前的代码,它给了我三个后退箭头作为后退按钮项,但是我如何更改颜色,使其在一位文本中成为三种不同的颜色? (绿色、黄色、红色)。

    func setCustomBackImage() 
        navigationItem.backBarButtonItem = UIBarButtonItem(title: "<<<", style: .plain, target: nil, action: nil)
    

【问题讨论】:

你不能。您需要将其设为图像,而不是文本。图像可以是 文本的图像,但仍需要是图像(而不是 title)。 你能给出一些提示吗?我对 swift 还是很陌生 developer.apple.com/documentation/uikit/uibarbuttonitem/… 这是我很难消化和实际使用的文档。如您所说,我将如何制作image 并更改该图像中特定文本字符的颜色以实现原始图片中所需的三个后退箭头? 【参考方案1】:

有一个更简单的方法,因为你说“我对 swift 还是很陌生”,你去吧!

//add this in AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions 
launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool 

let backArrowImage = UIImage(named: "icon50")
let renderedImage = backArrowImage?.withRenderingMode(.alwaysOriginal)
UINavigationBar.appearance().backIndicatorImage = renderedImage
UINavigationBar.appearance().backIndicatorTransitionMaskImage = renderedImage
return true
// This will change all back-arrows to whatever image you want


这里的“icon50”应该是“

希望对你有帮助:)

【讨论】:

谢谢,这实际上非常有用。您知道如何制作包含 3 个后退箭头的图像吗? 使用油漆:O!或者在 MAC 中,使用 GIMP 2.10 或 PaintBrush(只要谷歌这个,它是免费的)。另外,如果这解决了您的问题,请将其标记为正确答案。【参考方案2】:

这似乎与您所描述的相似:

如果您使用图像而不是条形按钮项目的标题,那就很简单了。

【讨论】:

哦,是的,这正是我所描述的。使用 Zyfe3r 给出的答案,我了解如何用图像替换所有后退按钮,但是您是如何开始创建此图像的? 我没有创建图像。你做到了。

以上是关于仅在 swift 中更改后退栏按钮项的颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改导航栏中后退按钮的颜色

如何更改导航栏后退按钮的字体和颜色

更改后退导航栏按钮的字体

iOS13导航栏后退栏按钮项目色调颜色

更改后退按钮 iOS 中箭头的颜色

导航栏后退按钮箭头字体 Swift