ios uilabel clipping

ios - Recorte de UILabel cuando se ajustaFontSizeToFitWidth



clipping (2)

Cuando agrego texto a una etiqueta con el ajuste adjustsFontSizeToFitWidth ajustado en YES el texto ya no está centrado verticalmente y eventualmente recorta el texto en la parte inferior del marco de la etiqueta. Para una gran cantidad de texto, eventualmente desaparecerá de la parte inferior de la etiqueta.

Esto es lo que pasa si agregas menos texto:

Esto se recorta como lo esperaría (es decir, el tamaño de la fuente no se redujo, el texto se centró verticalmente en la etiqueta y se recortó en la parte superior e inferior).

Aquí está el código para reproducir:

- (void)loadView { [super loadView]; self.view.backgroundColor = [UIColor blueColor]; testLabel = [[UILabel alloc] init]; testLabel.font = [UIFont boldSystemFontOfSize:172]; testLabel.textColor = [UIColor blackColor]; testLabel.adjustsFontSizeToFitWidth = YES; testLabel.numberOfLines = 1; testLabel.frame = CGRectMake(50, 50, 300, 100); testLabel.text = @"123"; [self.view addSubview:testLabel]; }

¿Debería suceder esto? ¿Y cómo hago para que mi etiqueta se centre verticalmente, independientemente de la cantidad de caracteres en mi etiqueta?


Añadir

testLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters;

a su código para centrar verticalmente el texto en escala de fuente.


También me gustaría agregar que ajustaFontSizeToFitWidth no funciona muy bien con el texto atribuido, así que agregue sus atributos a la etiqueta en lugar del texto atribuido, si puede. Esto funcionó para mí.