是否可以在应用程序中使用iOS 7的修改过的Helvetica?

ino*_*nik 8 uifont ios ios7

对于iOS 7,Apple制作了Helvetica Thin/Light的特殊修改版本,它具有圆形句点和冒号:

在此输入图像描述

将此与在Xcode中使用Helvetica-Neue Thin或Helvetica-Neue Light进行比较:

在此输入图像描述

是否可以开发具有圆形冒号和句点的特殊修改版本的应用程序?

编辑:原来这些圆形冒号和句号不是由Apple定制设计的,它们是"字符替代",您可以在您喜欢的字体字形查看器中看到它们.

ino*_*nik 11

这是怎么做的.即使阅读文档,也很不清楚.

首先,您必须获得字体的特征,这将为您提供在您的字体中使用的常量UIFontDescriptorFeatureSettingsAttribute.我从这篇文章中得到了我.

这为您提供了要素类型标识符键,以及它们的值选项,即特征选择器标识符键.

NSArray *timerDisplaySettings = @[
                                      @{ UIFontFeatureTypeIdentifierKey: @(6),
                                        UIFontFeatureSelectorIdentifierKey: @(1)
                                     },
                                      @{ UIFontFeatureTypeIdentifierKey: @(17),
                                        UIFontFeatureSelectorIdentifierKey: @(1)
                                        }];
Run Code Online (Sandbox Code Playgroud)

然后通过添加到描述符来创建字体描述符 - 这样您就可以通过以下方式指定字体名称和族UIFont:

UIFont *font = [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:32];

UIFontDescriptor *originalDescriptor = [font fontDescriptor];
UIFontDescriptor *timerDescriptor =[originalDescriptor fontDescriptorByAddingAttributes: @{ UIFontDescriptorFeatureSettingsAttribute: timerDisplaySettings }];
Run Code Online (Sandbox Code Playgroud)

然后,关闭循环并使用描述符创建字体.(大小"0.0"仅表示我们没有将其从原始大小32缩放.

UIFont *timerFont = [UIFont fontWithDescriptor: timerDescriptor size:0.0];
Run Code Online (Sandbox Code Playgroud)