iOS 9等宽文字

时间:2015-09-15 05:21:51

标签: ios

我的应用中有一个日期倒计时,我想利用旧金山的等宽数字功能。我目前使用以下代码检索字体:

UIFontDescriptor *countdownFontDescriptor = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
NSArray *additionalFontSettings = @[@{UIFontFeatureTypeIdentifierKey: @(kNumberSpacingType), UIFontFeatureSelectorIdentifierKey: @(kMonospacedNumbersSelector)},
                                    @{UIFontFeatureTypeIdentifierKey: @(kTextSpacingType), UIFontFeatureSelectorIdentifierKey: @(kMonospacedTextSelector)}];
countdownFontDescriptor = [countdownFontDescriptor fontDescriptorByAddingAttributes: @{UIFontDescriptorFeatureSettingsAttribute: additionalFontSettings}];
UIFont *desiredFont = [UIFont fontWithDescriptor:countdownFontDescriptor size:14];

我得到等宽数字,因为它们应该出现,但我的字符串中有分号,用于分隔数字。偶尔我会看到这个角色的举动。如何才能使分号的宽度保持不变? (这就是我尝试添加kTextSpacingType

的原因

1 个答案:

答案 0 :(得分:0)

不确定,但您是否尝试过(从Xcode 9.1测试版开始)

/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/CoreText.framework/Headers/SFNTLayoutTypes.h.

我看不到在那里做到的方法,但也许其他人可以。