NSTextAttachment 色调颜色

NSTextAttachment Tint Color

我正在尝试创建一个带有文本的标签,并在前面加上一个图标,但遗憾的是我无法仅更改图标的颜色。它始终使用默认颜色着色。

我是这样做的:

var titleStringAttribute = NSMutableAttributedString(string: "")

var iconAttachment = NSTextAttachment(image: UIImage(systemName: "trash")!)
iconAttachment.image?.withTintColor(.red, renderingMode: .alwaysTemplate) // Does not work?!

titleStringAttribute.append(NSAttributedString(attachment: iconAttachment))

// Appending bold text to attributedText

theLabel.attributedText = titleStringAttribute

我也查看了 Whosebug 和互联网上的其他网站,但没有任何帮助。

我正在使用 iOS 13.5.

感谢您的回答!

withTintColor(_:renderingMode:) 不会 更改 您调用它的图像。它所做的一切 return 一个 new UIImage 供您使用,但您没有使用它。

更新您的代码以首先创建默认垃圾图像,然后使用 withTintColor 从该图像创建一个新图像,最后在其初始化程序中为您的附件提供该新图像:

let titleStringAttribute = NSMutableAttributedString(string: "")

let trashImage = UIImage(systemName: "trash")!
let redTrashImage = trashImage.withTintColor(.red, renderingMode: .alwaysTemplate)
let iconAttachment = NSTextAttachment(image: redTrashImage)

titleStringAttribute.append(NSAttributedString(attachment: iconAttachment))

// Appending bold text to attributedText

theLabel.attributedText = titleStringAttribute