,所以我有一个字符串,它看起来像这样:Swift , VisualBasic , Ruby
一个字符串转换为NSAttributedString以特定的方式
基本上我想后面的创建背景一个单词,是的,我可以使用NSTokenField库获取此行为,但我的文本不是用户手动输入它的预结构化(从数组),我不想要NSTokeField的整个行为,我只想要这样的外观和选择(通过选择我的意思是清除一个单词在退格键上,整个单词不是一个字母)
嗯,我知道如何更改的文字是这样的
func getColoredText(text: String) -> NSMutableAttributedString {
let string:NSMutableAttributedString = NSMutableAttributedString(string: text)
let words:[String] = text.componentsSeparatedByString(" ")
var w = ""
for word in words {
if (word.hasPrefix("{|") && word.hasSuffix("|}")) {
let range:NSRange = (string.string as NSString).rangeOfString(word)
string.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range: range)
w = word.stringByReplacingOccurrencesOfString("{|", withString: "")
w = w.stringByReplacingOccurrencesOfString("|}", withString: "")
string.replaceCharactersInRange(range, withString: w)
}
}
return string
}
的颜色,但我不知道该如何实现我想要什么,如果有人能提供我一些指导,那么它会是这样的帮助我
私人秘书,如果我的问题不够清楚,那么请让我知道我会添加一些更多的细节
@beyouWulf感谢人其工作很好,我想知道我们可以计算所有标签(组合)的高度?任何想法我们怎么能? –
我更新了我的答案。在完成标签布局后,很容易就可以得到它。您可以将'for'循环片段和'if let'片段合并为一个函数,如'layoutLabelsAndResizeView'或类似的东西。 – beyowulf