Eu usei minimumFontSize
antes, mas essa função agora está obsoleta e não entendo muito bem como minimumScaleFactor
funciona.
Eu quero que o tamanho máximo da fonte seja 10 e o mínimo seja 7.
Como posso redimensionar para o tamanho da fonte 7 com o fator de escala?
UILabel
criação:
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];
ios
objective-c
uilabel
Padin215
fonte
fonte
Além do que dizem as outras respostas, se você colocar minSize / defaultSize (division) como o
minimumScaleFactor
, será o mesmo que usar o antigominimumFontSize
.Por exemplo, se você deseja que o tamanho mínimo da fonte seja 10 usando o tamanho de etiqueta padrão, você pode fazer:
[label setMinimumScaleFactor:10.0/[UIFont labelFontSize]];
(Substitua
[UIFont labelFontSize]
pelo tamanho da fonte da etiqueta se não for o padrão).que seria o mesmo que:
[label setMinimumFontSize:10.0];
fonte
De acordo com a documentação :
Portanto, se o tamanho da fonte padrão para a sua etiqueta for
10
, coloque0.7f
como umminimumScaleFactor
e ele deve fazer a mesma coisa queminimumFontSize
fez.fonte
Além de outras respostas, vou adicionar uma explicação amigável para iniciantes que me ajudou:
Como calcular um
minimumScaleFactor
? Divida o tamanho mínimo da fonte da etiqueta pelo tamanho da fonte padrão da etiqueta. Por exemplo, o tamanho da fonte padrão é 25. O tamanho mínimo da fonte é 10.10/25 = 0,4
0,4 é o seu
minimumScaleFactor
valor. Veja também a resposta de @Jsdodgers acima.fonte