问题:当我使用使用Range的Swift String时,NSAttributedString接受NSRange
let text = "Long paragraph saying something goes here!"
let textRange = text.startIndex..<text.endIndex
let attributedString = NSMutableAttributedString(string: text)
text.enumerateSubstringsInRange(textRange, options: NSStringEnumerationOptions.ByWords, { (substring, substringRange, enclosingRange, stop) -> () in
if (substring == "saying") {
attributedString.addAttribute(NSForegroundColorAttributeName, value: NSColor.redColor(), range: substringRange)
}
})
Run Code Online (Sandbox Code Playgroud)
产生以下错误:
错误:'Range'不能转换为'NSRange'aligolsString.addAttribute(NSForegroundColorAttributeName,value:NSColor.redColor(),range:substringRange)
我从DB内容中提取为字符串.使用方法,我从该字符串中提取最长的单词.
现在我想将整个字符串打印到文本标签,但是想要在字符串中突出显示不同颜色和文本样式的最长字.
我怎样才能做到这一点?我是否需要将字符串切成碎片 - 设置格式 - 然后将它们全部放在一起再放入标签之前?
或者还有其他(更好的)方式吗?
我在IB中创建了许多UILabel,它们都归因于文本.每个标签的文本包含多行不同的字体大小和颜色.
在运行时,我希望能够只更改这些标签的字体名称,而无需更改现有的字体大小或颜色.
我已经研究过,无法找到一种直接的方法来实现这一目标.有任何想法吗?