我正在尝试将自己的HTML字符串解析为NSAttributedString,以便在UITextView中进行渲染。
因此,当字符串出现时:
<strong><em>
这应该是粗体和斜体</strong></em>
我想在最终的NSAttributedString中应用一个明确的粗体和斜体字体,这样如果用户在编辑过程中从中删除了粗体或斜体字体,其余字体将保持不变。
这就是为什么我不想像其他SO答案所暗示的那样只应用粗体斜体等单一字体样式的主要原因。
答案 0 :(得分:12)
在查看不同来源后,我的回答是:
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];