关于iOS9系统下数字抖动的问题
由于iOS9系统使用全新的SF字体作为显示的数字字体,该字体具有比例字体的属性功能,使不同字母和数字的宽度按具体的字体来进行比例调整,对于需要统一字体宽度或者是倒计时等功能的字体显示时,会造成字体长短不一或数字抖动等问题,解决方法有两种:
- StoryBoard设置:把Font的设置从System设置为Helvetica Neue。
- 代码设置,把需要调整的字体按以下方式设置,可调整为等宽字体形式(monospaced):
let originalFont = UIFont.systemFontOfSize(17)
let originalFontDescriptor = originalFont.fontDescriptor()
let fontDescriptorFeatureSettings = [
[
UIFontFeatureTypeIdentifierKey: kNumberSpacingType,
UIFontFeatureSelectorIdentifierKey: kMonospacedNumbersSelector
]
]
let fontDescriptorAttributes = [UIFontDescriptorFeatureSettingsAttribute: fontDescriptorFeatureSettings]
let fontDescriptor = originalFontDescriptor.fontDescriptorByAddingAttributes(fontDescriptorAttributes)
let font = UIFont(descriptor: fontDescriptor, size: 0)