如何设置 NSAttributedString 文本颜色?
How to set NSAttributedString text color?
我试图将一些属性设置为 NSAttributedString。除了前景色,一切正常。
这是我尝试设置属性的方式:
func setLabelText(text:String){
let strokeTextAttributes = [
NSAttributedString.Key.strokeColor : UIColor.white,
NSAttributedString.Key.foregroundColor : UIColor.red,
NSAttributedString.Key.font : UIFont.init(name: "Raleway-ExtraBold", size: 26)!,
NSAttributedString.Key.strokeWidth : 0.5,
]
as [NSAttributedString.Key : Any]
label.attributedText = NSMutableAttributedString(string: text, attributes: strokeTextAttributes)
}
正如您在图片中看到的那样,它没有设置文本颜色:
你知道为什么它会忽略 foregroundColor 属性吗?
提前致谢。
您的问题出在 strokeWidth
属性 上,因为您使用的是正数,只有笔画受到影响。您需要使用负数来更改笔画和填充文本,如 strokeWidth 属性:
的文档中所述
Specify positive values to change the stroke width alone. Specify negative values to stroke and fill the text.
let strokeTextAttributes: [NSAttributedString.Key : Any] = [
.strokeColor : UIColor.white,
.foregroundColor : UIColor.red,
.font : UIFont.init(name: "Raleway-ExtraBold", size: 26)!,
.strokeWidth : -0.5,
]
在我看来,最好指定列表的数据类型,而不是将列表转换为特定类型。
我试图将一些属性设置为 NSAttributedString。除了前景色,一切正常。
这是我尝试设置属性的方式:
func setLabelText(text:String){
let strokeTextAttributes = [
NSAttributedString.Key.strokeColor : UIColor.white,
NSAttributedString.Key.foregroundColor : UIColor.red,
NSAttributedString.Key.font : UIFont.init(name: "Raleway-ExtraBold", size: 26)!,
NSAttributedString.Key.strokeWidth : 0.5,
]
as [NSAttributedString.Key : Any]
label.attributedText = NSMutableAttributedString(string: text, attributes: strokeTextAttributes)
}
正如您在图片中看到的那样,它没有设置文本颜色:
你知道为什么它会忽略 foregroundColor 属性吗?
提前致谢。
您的问题出在 strokeWidth
属性 上,因为您使用的是正数,只有笔画受到影响。您需要使用负数来更改笔画和填充文本,如 strokeWidth 属性:
Specify positive values to change the stroke width alone. Specify negative values to stroke and fill the text.
let strokeTextAttributes: [NSAttributedString.Key : Any] = [
.strokeColor : UIColor.white,
.foregroundColor : UIColor.red,
.font : UIFont.init(name: "Raleway-ExtraBold", size: 26)!,
.strokeWidth : -0.5,
]
在我看来,最好指定列表的数据类型,而不是将列表转换为特定类型。