NSTextAttachment色调颜色

问题描述 投票:0回答:1

我正在尝试创建一个带有文本的标签,并在其前面添加一个图标。但不幸的是,我无法仅更改图标的颜色,它始终带有默认颜色。

这是我的方法:

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

我也研究了互联网上的stackoverflow和其他网站,但没有任何帮助。我正在使用iOS 13.5。

感谢您的回答!

swift uiimage nsattributedstring tintcolor
1个回答
0
投票

withTintColor(_:renderingMode:)不会change您所调用的图像。它所做的全部返回一个new UIImage供您使用,但您没有使用它。

将您的代码更新为可正常运行:

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
© www.soinside.com 2019 - 2024. All rights reserved.