104 votes

Comment fonctionne minimumScaleFactor d'un UILabel?

Je l'ai utilisé, minimumFontSize avant, mais cette fonction est maintenant obsolète et je n'arrive pas à comprendre comment minimumScaleFactor travaux.

je veux le maximum de la taille de la police à 10 et que le minimum à 7.

comment puis-je obtenir la ré-taille vers le bas à la taille de police 7 avec le facteur d'échelle?

EDIT:

UILabel création:

UILabel *label = [[UILabel alloc] init];
[label setTranslatesAutoresizingMaskIntoConstraints:NO];
label.text =  [labelName uppercaseString];
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:HELVETICA_FONT_STYLE_BOLD size:9.5];
label.backgroundColor = [UIColor clearColor];
label.minimumScaleFactor = .1f;

[label addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[label(WIDTH)]"
                                                              options:0
                                                              metrics:@{@"WIDTH" : [NSNumber numberWithFloat:buttonSize.width]}
                                                                views:NSDictionaryOfVariableBindings(label)]];

[contentView addSubview:label];

195voto

Scott Points 934

Vous devez définir l' label.adjustsFontSizeToFitWidth = YES;

103voto

Jsdodgers Points 3791

En plus de ce que les autres réponses-dire, si vous mettez minSize/defaultSize (division) comme l' minimumScaleFactor, il sera le même que l'aide de l'ancien minimumFontSize.

Ex, si vous voulez la taille de police minimale de 10 par défaut la taille de l'étiquette, vous pouvez le faire:

[label setMinimumScaleFactor:10.0/[UIFont labelFontSize]];

(Remplacer [UIFont labelFontSize] avec votre étiquette de la taille de la police si elle n'est pas la valeur par défaut).

qui serait le même que: [label setMinimumFontSize:10.0];

20voto

kovpas Points 5685

Selon la documentation:

Utilisez cette propriété pour spécifier le plus petit coefficient multiplicateur pour la taille de la police actuelle que les rendements acceptables taille de police à utiliser lors de l'affichage du texte de l'étiquette. Si vous spécifiez une valeur de 0 pour cette propriété, la taille de la police actuelle est utilisée comme la plus petite taille de police.

Donc si la taille de police par défaut de votre étiquette est 10, vous placez 0.7f comme minimumScaleFactoret il devrait faire la même chose que minimumFontSize a fait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X