首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字体描述符和符号特征

字体描述符和符号特征
EN

Stack Overflow用户
提问于 2016-02-04 19:05:55
回答 2查看 472关注 0票数 0
代码语言:javascript
复制
UIFontDescriptor *bodyFontDescriptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
UIFontDescriptor *italicBoldDescriptor = [bodyFontDescriptor fontDescriptorByAddingAttributes:@{UIFontDescriptorTraitsAttribute : @{ UIFontSymbolicTrait: @(UIFontDescriptorTraitItalic | UIFontDescriptorTraitBold)}}];
UIFont *comboFont = [UIFont fontWithDescriptor:italicBoldDescriptor size:0.0];
[self.body.textStorage addAttribute:NSFontAttributeName value:comboFont range:self.body.selectedRange];

我的目标是在文本视图中以粗体/斜体显示选定的文本。在做了一些研究之后,这就是我所拥有的,并且它起作用了!但是,我真的不理解代码,尤其是第二行。如果有人能解释一下这段代码到底在做什么,我将不胜感激。此外,我也不理解第二行中发生的字典语法。'|‘字符的语法是什么?我以前从未见过这种情况。非常感谢您的宝贵时间。

EN

回答 2

Stack Overflow用户

发布于 2016-02-04 19:19:30

UIFontDescriptorTraitsAttribute,一个完整描述字体特征的NSDictionary实例。默认值由字体提供。

UIFontDescriptorSymbolicTraits象征性地描述了字体的风格方面。

你可以查看iOS Developer library

票数 1
EN

Stack Overflow用户

发布于 2020-07-27 01:48:29

"|“运算符是C位OR,它将两个标志值组合成一个数字。

苹果在bold上的文档显示为UIFontDescriptorTraitBold = 1u << 1,在italic上显示为UIFontDescriptorTraitItalic = 1u << 0

因此,OR子句将二进制值0b00000010和0b00000001组合成一个单独标志0b00000011。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35199390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档