How to stop a time UILabel from resizing at every time increment?

前端 未结 2 1631
旧时难觅i
旧时难觅i 2021-01-04 11:06

I have a stopwatch feature in my app that uses a centered attributed UILabel with a proportionally spaced font to render time. At every time increment the width

2条回答
  •  既然无缘
    2021-01-04 11:48

    Use a monospaced font or pass parameters when creating the font which force monospaced numbers:

    //kNumberSpacingType 6
    //kMonospacedNumbersSelector 0
    NSArray *setting = @[
                             @{
                                 UIFontFeatureTypeIdentifierKey: @(6),
                                 UIFontFeatureSelectorIdentifierKey: @(0)
                                 }
                             ];
    
    return [UIFont fontWithDescriptor:[[self fontDescriptor] fontDescriptorByAddingAttributes:@{UIFontDescriptorFeatureSettingsAttribute : setting}] size:0.0];
    

提交回复
热议问题