【发布时间】:2016-12-28 14:53:27
【问题描述】:
我正在尝试在一个字符串中设置两个不同的string range 粗体字体。我知道如何通过range 做到这一点range,但是否可以一次使用多个范围。我不喜欢重复代码。
这是我的代码
if let rankString = trophy.fullRank.value {
var secondRankString = "some string"
var string = SRUtils.LocalizedString("unlocked.description", comment: "")
string = String(format: string, trophy.trophiesNumber.value!, rankString)
let atStr = NSMutableAttributedString(string: string)
//Here i need to add rankString and other range
let textRange = (string as NSString).range(of: rankString)
if let font = UIFont(name: "HelveticaNeue-Bold", size: 16) {
atStr.addAttribute(NSFontAttributeName, value: font, range: textRange)
self.trophyDescription.value = atStr
}
}
例如:
var string = "Hello do you need a cat"
var rankString = "cat"
我的代码结果:“你好,你需要一只猫”
我需要的是:
var mytring = "Hello do you need a cat"
var rankString = "cat"
var secondRankString = "need"
异常结果:“你好,你需要一只猫”
那么我怎么能在 swift 3 中添加多个范围来应用,而不需要多个变量声明...有可能吗?
【问题讨论】:
-
你可以写一个扩展方法,传递你想要的范围