Como parar um tempo em que o UILabel é redimensionado a cada incremento de tempo?

Eu tenho um recurso de cronômetro no meu aplicativo que usa um atributo centralizadoUILabel com uma fonte espaçada proporcionalmente para renderizar tempo. A cada momento, a largura da etiqueta é alterada, criando um efeito de rebatimento que parece especialmente ruim em altas velocidades. Aqui está umexemplo.

Como posso consertar isso?

ATUALIZAÇÃO DO iOS 9

Agora é uma linha:

UIFont.monospacedDigitSystemFontOfSize(17, weight: UIFontWeightRegular)

Além disso, da última vez que tentei, a solução abaixo não funcionou para o iOS 9. Desperdiçamos bastante tempo depurando antes de tropeçar nisso no cabeçalho.

SOLUÇÃO

Acabou sendo trivial com o Kit de texto no iOS 7.

Verifique se o Texto principal foi importado:

#import <CoreText/CoreText.h>

Crie uma configuração que converta números proporcionais em monoespaçada:

NSArray *monospacedSetting = @[@{UIFontFeatureTypeIdentifierKey: @(kNumberSpacingType),
                                 UIFontFeatureSelectorIdentifierKey: @(kMonospacedNumbersSelector)}];

Crie um novo descritor de fonte anexando o atual usado porUILabel:

UIFontDescriptor *newDescriptor = [[timeLabel.font fontDescriptor] fontDescriptorByAddingAttributes:@{UIFontDescriptorFeatureSettingsAttribute: monospacedSetting}];

Atualizar fonte da etiqueta:

// Size 0 to use previously set font size
timeLabel.font = [UIFont fontWithDescriptor:newDescriptor size:0];

questionAnswers(2)

yourAnswerToTheQuestion