我的应用中有一个日期倒计时,我想利用旧金山的等宽数字功能。我目前使用以下代码检索字体:
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
)
答案 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.
我看不到在那里做到的方法,但也许其他人可以。