Lo he usado minimumFontSize
antes, pero esa función ahora está en desuso y no entiendo muy bien cómo minimumScaleFactor
funciona.
Quiero que el tamaño máximo de fuente sea 10 y el mínimo 7.
¿Cómo puedo reducir el tamaño al tamaño de fuente 7 con el factor de escala?
UILabel
creación:
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
fuente
fuente
Además de lo que dicen las otras respuestas, si coloca minSize / defaultSize (division) como
minimumScaleFactor
, será lo mismo que usar el antiguominimumFontSize
.Por ejemplo, si desea que el tamaño de fuente mínimo sea 10 usando el tamaño de etiqueta predeterminado, puede hacer lo siguiente:
[label setMinimumScaleFactor:10.0/[UIFont labelFontSize]];
(Reemplace
[UIFont labelFontSize]
con el tamaño de fuente de su etiqueta si no es el predeterminado).que sería lo mismo que:
[label setMinimumFontSize:10.0];
fuente
Según la documentación :
Entonces, si el tamaño de fuente predeterminado para su etiqueta es
10
, póngalo0.7f
comominimumScaleFactor
y debería hacer lo mismo queminimumFontSize
hizo.fuente
Además de otras respuestas, voy a agregar una explicación para principiantes que me ayudó a mí mismo:
¿Cómo calcular a
minimumScaleFactor
? Divida el tamaño de fuente mínimo de su etiqueta por el tamaño de fuente predeterminado de su etiqueta. Por ejemplo, su tamaño de fuente predeterminado es 25. Su tamaño de fuente mínimo es 10.10/25 = 0,4
0.4 es su
minimumScaleFactor
valor. También vea la respuesta de @ Jsdodgers arriba.fuente