gpt4 book ai didi

ios - 如何在swift中格式化属性字符串?

转载 作者:行者123 更新时间:2023-11-29 00:11:09 27 4
gpt4 key购买 nike

我正在处理一个通知页面,其中的输入主要来自 JSON 文件,我需要将它们与本地化字符串结合起来。它应该是这样的:

Sketch design

可以预测,彩色部分来自 JSON 文件,其余部分来自 Localizable.strings。这是来自 Localizable 文件的内容:

"%@ has joined %@"

如果我使用 String(format: String, [...]) 我有一个纯黑色文本,我无法指定需要着色的部分。

我需要 NSAttributedString 的相同功能,但它没有此方法。

那么如何格式化属性字符串呢?

最佳答案

检查以下示例:

var myMutableString = NSMutableAttributedString()

myMutableString = NSMutableAttributedString(string: "Your full label textString")

myMutableString.setAttributes([NSFontAttributeName : UIFont(name: "HelveticaNeue-Light", size: CGFloat(17.0))!
, NSForegroundColorAttributeName : UIColor(red: 232 / 255.0, green: 117 / 255.0, blue: 40 / 255.0, alpha: 1.0)], range: NSRange(location:12,length:8)) // What ever range you want to give

yourLabel.attributedText = myMutableString

或者另一种方式:

要更改一段文本的颜色,您需要知道字符串中待着色字符的开始和结束索引,例如

var main_string = "Hello World"
var string_to_color = "World"

var range = (main_string as NSString).rangeOfString(string_to_color)

然后您转换为属性字符串并使用“添加属性”和 NSForegroundColorAttributeName:

var attributedString = NSMutableAttributedString(string:main_string)
attributedString.addAttribute(NSForegroundColorAttributeName, value: NSColor.redColor() , range: range)

关于ios - 如何在swift中格式化属性字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46433449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com