NSMutableAttributedString 的可变大小范围
Variable sized range for NSMutableAttributedString
我有一个标签,其字符串如下所示。我希望 secondVariable
是不同的颜色。我想我明白如何改变颜色。我的问题是获取 secondVariable
.
的范围
let str = "\(firstVariable) some random text \(secondVariable)"
let secondVariableRange = str.range(???)
let secondVariableNSRange = NSRange(secondVariableRange, in: str)
let attributedString = NSMutableAttributedString.init(string:
"\(firstVariable) some random text \(secondVariable)")
attributedString.addAttribute(.foregroundColor, value: UIColor.white,
range: NSRange(secondVariableNSRange, in: attributedString)
有一种比处理范围更简单的方法。分段构建您的属性字符串。
let attributedString = NSMutableAttributedString(string:
"\(firstVariable) some random text ")
let attrs: [NSAttributedStringKey : Any] = [ .foregroundColor: UIColor.white ]
let secondString = NSAttributedString(string: "\(secondVariable)", attributes: attrs)
attributedString.append(secondString)
但是如果你真的想得到范围,使用:
let secondVariableRange = (str as NSString).range(of: "\(secondVariable)")
我有一个标签,其字符串如下所示。我希望 secondVariable
是不同的颜色。我想我明白如何改变颜色。我的问题是获取 secondVariable
.
let str = "\(firstVariable) some random text \(secondVariable)"
let secondVariableRange = str.range(???)
let secondVariableNSRange = NSRange(secondVariableRange, in: str)
let attributedString = NSMutableAttributedString.init(string:
"\(firstVariable) some random text \(secondVariable)")
attributedString.addAttribute(.foregroundColor, value: UIColor.white,
range: NSRange(secondVariableNSRange, in: attributedString)
有一种比处理范围更简单的方法。分段构建您的属性字符串。
let attributedString = NSMutableAttributedString(string:
"\(firstVariable) some random text ")
let attrs: [NSAttributedStringKey : Any] = [ .foregroundColor: UIColor.white ]
let secondString = NSAttributedString(string: "\(secondVariable)", attributes: attrs)
attributedString.append(secondString)
但是如果你真的想得到范围,使用:
let secondVariableRange = (str as NSString).range(of: "\(secondVariable)")