如何创建具有特殊字体属性的灯光系统字体
Posted
技术标签:
【中文标题】如何创建具有特殊字体属性的灯光系统字体【英文标题】:How to create light system font with special font attributes 【发布时间】:2016-09-13 02:59:40 【问题描述】:我需要创建一个 UIFont,它是:
-
旧金山
重量轻
使用不区分大小写的字体属性(显示与数字垂直对齐的“/”字形)
我正在使用此代码来解决它:
UIFontDescriptor *fontDescriptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
NSArray *additionalFontSettings = @[@UIFontFeatureTypeIdentifierKey: @(kCaseSensitiveLayoutType), UIFontFeatureSelectorIdentifierKey: @(kCaseSensitiveLayoutOnSelector)];
fontDescriptor = [fontDescriptor fontDescriptorByAddingAttributes:@UIFontDescriptorFeatureSettingsAttribute: additionalFontSettings, UIFontDescriptorTraitsAttribute: @UIFontWeightTrait : @(UIFontWeightLight)];
return [UIFont fontWithDescriptor:fontDescriptor size:50];
我在启用了正确功能的情况下获得了正确的字体,但我无法获得要遵守的字体粗细。我需要系统字体的轻量级。我如何做到这一点?
【问题讨论】:
不是以preferredFontDescriptorWithTextStyle
开头,而是以systemFontOfSize:weight:
开头呢?
@matt 该方法仅适用于UIFont
,不适用于UIFontDescriptor
。
我知道。这就是我的观点。
AFAIK,如果不使用UIFontDescriptor
,就无法添加我所需的字体功能?
我没有说不要使用字体描述符。我用字体说start。
【参考方案1】:
事实证明,马特的暗示是对的。我忘记了您可以从现有的UIFont
派生UIFontDescriptor
。
因此,像这样创建描述符是可行的:
UIFont *lightFont = [UIFont systemFontOfSize:50 weight:UIFontWeightLight];
UIFontDescriptor *fontDescriptor = lightFont.fontDescriptor;
【讨论】:
以上是关于如何创建具有特殊字体属性的灯光系统字体的主要内容,如果未能解决你的问题,请参考以下文章
在基于 Debian 的系统上,如何找到字体具有字形的 Unicode 代码点?
web开发——在网页中引用字体包(.ttf),即嵌入特殊字体