I was misunderstanding what proportional meant. Changing the key from proportional to monospaced fixed my issue.
-(UIFont*) getProportionalFontForTimerWithFont:(NSString*)fontName WithRatio:(CGFloat) fontRatio{
UIFont *const existingFont=[UIFont fontWithName:fontName];
UIFontDescriptor *const existingDescriptor=[existingFont fontDescriptor];
NSDictionary *const timeFeatureSettings=@{
UIFontDescriptorFeatureSettingsAttribute:@[
@{
UIFontFeatureTypeIdentifierKey: @(kNumberSpacingType),
UIFontFeatureSelectorIdentifierKey:@(kMonospacedNumbersSelector)
},
@{
UIFontFeatureTypeIdentifierKey: @(kCharacterAlternativesType),
UIFontFeatureSelectorIdentifierKey:@(1)
}]
};
UIFontDescriptor *const proportionalDescriptor=[existingDescriptor fontDescriptorByAddingAttributes:timeFeatureSettings];
UIFont* proportionalFont=[UIFont fontWithDescriptor:proportionalDescriptor size:[existingFont pointSize]];
return proportionalFont;
}