Necesito alinear las líneas de base de texto en UILabels. Lo que estoy haciendo actualmente es alinear las líneas de base de UILabels que contienen el texto, y cuando el tamaño de fuente de texto en dos etiquetas es diferente, esto da como resultado una línea base de UILabels alineadas pero una línea de base de texto desalineada (desalineada por un pequeño margen, pero desalineado). Las etiquetas se incluyen en una subclase UIView personalizada, por lo tanto, self
se refiere a la UIView abarcadora.¿Cómo alinear líneas de base de texto en UILabels con diferentes tamaños de fuente en iOS?
Este es el código correspondiente
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
self.mySmallLabel.frame = CGRectMake(0,
self.bounds.size.height - self.mySmallLabel.bounds.size.height,
self.mySmallLabel.bounds.size.width,
self.mySmallLabel.bounds.size.height);
self.myBigLabel.frame = CGRectMake(self.mySmallLabel.frame.origin.x + self.mySmallLabel.bounds.size.width,
self.bounds.size.height - self.myBigLabel.bounds.size.height,
self.myBigLabel.bounds.size.width,
self.myBigLabel.bounds.size.height);
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
resultados este código en el alineamiento en la imagen vinculada a continuación.
Como se puede ver, a pesar de que las líneas de base UILabel están alineados, las líneas de base del texto no está bien alineado por un pequeño margen. ¿Cómo puedo alinear las líneas de base del texto de forma dinámica (porque los tamaños de fuente pueden cambiar en tiempo de ejecución)?
¿Alguna versión que utiliza el diseño automático? – adib
La versión de diseño automático es sencilla: simplemente alinee dos etiquetas por 'NSLayoutAttributeBaseline' (o' NSLayoutAttributeLastBaseline' o 'NSLayoutAttributeFirstBaseline', según lo que elija). –