我試圖生成一個NSAttributedString
基本上只有默認字體,是斜體和不同的文字顏色。足夠簡單,到目前爲止。NSAttributedString與UIFontWeightTraits
現在我想要這整個字符串的不同子串到另外要粗體。它應該基本看起來像這樣:
從約翰史密斯於25.08。在8:00
(只是用不同的顏色。)
它看起來像我越來越字典錯了,我傳遞到NSMutableAttributedString
的addAttributes(_:_:)
功能。從documentation,我明白,這本字典應該是這樣的:
[UIFontDescriptorTraitsAttribute:
[UIFontWeightTrait: NSNumber(double: Double(UIFontWeightBold))]
但這似乎並沒有工作。所有我最終都是字符串的斜體版本。我明明在這裏弄錯了。任何想法?
更新:添加簡單的例子
// Preparation
let rawString = "from John Smith on 25.08. at 8:00"
let attributedString = NSMutableAttributedString(string: rawString)
let nameRange = (rawString as NSString).rangeOfString("John Smith")
let italicFont = UIFont.italicSystemFontOfSize(14)
// Make entire string italic: works!
attributedString.addAttributes([NSFontAttributeName : italicFont], range: NSMakeRange(0, 33))
// Make the name string additionally bold: doesn't work!
attributedString.addAttributes([UIFontDescriptorTraitsAttribute:
[UIFontWeightTrait: NSNumber(double: Double(UIFontWeightBold))]], range: nameRange)
// Show it on the label
attributedStringLabel.attributedText = attributedString
謝謝!
你必須採取多種屬性字符串合併到一個顯示。 –
你的意思是在使用上面提到的功能之後,我不能再添加其他的? – flohei