我需要做的是将一个符号特征添加到选定的范围中,因此如果它是斜体的,并且我按下了粗体按钮,那么它应该是斜体和粗体
- (IBAction)boldedSelectedText:(UIButton*)sender {
UIFontDescriptor* bodyFontDescriptor=[UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
UIFontDescriptor* boldFontdescriptor=[bodyFontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold];
self.body.font=[UIFont fontWithDescriptor:boldFontdescriptor size:0.0];
}
- (IBAction)italicSelectedText:(UIButton *)sender {
UIFontDescriptor* bodyFontDescriptor=[UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
UIFontDescriptor* italicFontdescriptor=[bodyFontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];
self.body.font=[UIFont fontWithDescriptor:italicFontdescriptor size:0.0];
}问题是,当我选择一个文本并将其设置为粗体然后是斜体时,它只变成斜体,反之亦然,它不能同时是粗体和斜体,同时我不知道我应该如何为以前的特征添加新的特征?
发布于 2015-07-08 05:04:00
字体符号特性是位掩码(NS_OPTIONS)。您需要根据您选择的选项将该标志设置为一个或两个。类似于:
UIFontDescriptor* italicBoldFontdescriptor = [bodyFontDescriptor
fontDescriptorByAddingAttributes:@{UIFontDescriptorTraitsAttribute:
@{ UIFontSymbolicTrait: @(UIFontDescriptorTraitItalic | UIFontDescriptorTraitBold) }
}];根据文档,fontDescriptorByAddingAttributes将,
返回一个新的字体描述符,它与接收方相同,但指定的属性优先于现有的属性
这将允许您保留其他设置。
https://stackoverflow.com/questions/29780333
复制相似问题