如何将粗体和斜体字体应用于NSAttributedString?

我试图parsing我自己的HTMLstring到一个NSAttributedString呈现在UITextView中。

所以,当string出现的时候,

<strong><em>这应该是粗体和斜体</strong></em>

我想对最终的NSAttributedString应用一个明显的粗体和斜体字体,这样,如果用户在编辑过程中删除粗体或斜体字体,其余的字体将保持不变。

这就是为什么我不想简单地像粗体和斜体一样应用单一字体样式的主要原因,正如其他的SO答案所暗示的那样。

这是我通过不同的来源后的答案:

 UIFontDescriptor *fontDescriptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody]; UIFontDescriptor *changedFontDescriptor; NSDictionary *attributes; uint32_t existingTraitsWithNewTrait = [fontDescriptor symbolicTraits] | UIFontDescriptorTraitBold | UIFontDescriptorTraitItalic; changedFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:existingTraitsWithNewTrait]; UIFont *updatedFont = [UIFont fontWithDescriptor:changedFontDescriptor size:0.0]; attributes = @{ NSFontAttributeName : updatedFont }; attributedString = [[NSAttributedString alloc] initWithString:yourString attributes:attributes];