答案 0 :(得分:3)
在iOS上使用Attributed Strings的最佳方法是在界面构建器中使用内置的Attributed Text编辑器,并避免在源文件中使用不必要的硬编码NSAtrributedStringKeys。
您可以稍后使用此扩展名在运行时动态替换placehoderls:
extension NSAttributedString {
func replacing(placeholder:String, with valueString:String) -> NSAttributedString {
if let range = self.string.range(of:placeholder) {
let nsRange = NSRange(range,in:valueString)
let mutableText = NSMutableAttributedString(attributedString: self)
mutableText.replaceCharacters(in: nsRange, with: valueString)
return mutableText as NSAttributedString
}
return self
}
}
添加一个故事板标签,其属性文字如下所示。
然后,您只需在每次需要时更新值:
label.attributedText = initalAttributedString.replacing(placeholder: "<price>", with: newValue)
确保将原始值保存到initalAttributedString中。
通过阅读本文,您可以更好地理解这种方法: https://medium.com/mobile-appetite/text-attributes-on-ios-the-effortless-approach-ff086588173e
答案 1 :(得分:0)