¿Cómo cambiar dinámicamente el tamaño de fuente en el diseño automático de iOS?

Quiero ajustar mi texto en un UILabel , pero para diferentes iPhone el tamaño de UILabel está cambiando, ya que estoy usando el diseño automático, pero no puedo arreglar el tamaño de la fuente, por lo que mi texto se está cortando.

¿Hay alguna manera de establecer cualquier restricción para que el texto encaje en el UILabel forma dinámica?

Vea aquí el texto se cortó, debido a la diferente resolución de pantalla

Deberías usar autoshrink .

Dado que todos los iPhones tienen la misma clase de tamaño de Compact width en el modo vertical, no puede confiar en esto para manejar el tamaño de su etiqueta.


Las vistas previas son para iPhone5, iPhone6 ​​y iPhone 6+

enter image description here

En el inspector, debe seleccionar la escala de fuente mínima o el tamaño de fuente mínimo frente a Autoshrink. Esto permite que el contenido cambie el tamaño de la fuente para que quepa en la etiqueta.

Aquí, configuro la escala mínima de la fuente a 0,5, por lo que el tamaño mínimo es la mitad del tamaño actual (31.0) . El texto intentará ajustarse hasta que scope la escala / tamaño mínimo.

(Por lo general, no utilice “Ajustar espaciado entre letras” para este propósito. Apretar el espaciado entre letras usa el mismo tamaño de letra y reduce el espacio entre letras. Puede hacer que la etiqueta sea un 2% a 5% más estrecha antes de truncar, pero no es efectivo cuando la escala de fuente es mínima / size está habilitado)


Es posible que desee probar con un dispositivo de pantalla ancha, como el iPad Pro , y también en una pantalla más pequeña, como el iPhone 4S .

Autoshrink no ajustará el tamaño de fuente más grande que el establecido en la etiqueta, lo que significa que si la etiqueta tiene el mismo ancho que la pantalla pero deja el tamaño de la fuente en 14 , intentará boost el tamaño de la fuente hasta que scope ese tamaño .

Para que realmente funcione, seleccione un tamaño de letra grande.

Todavía puede combinar autoshrink con clases de tamaño para cambiar el tamaño máximo de fuente dependiendo del dispositivo / la orientación.


En caso de que desee utilizar autoshrink con UIButton s, aún puede establecer este comportamiento con dos líneas de código.

 myButton.titleLabel.minimumScaleFactor = 0.5; myButton.titleLabel.adjustsFontSizeToFitWidth = YES; 

Hola, si estás agregando UILabel desde el guión gráfico, puedes establecer diferentes fonts para todo el diseño disponible.

enter image description here

Puedes hacer esto usando clases de tamaño. cada dimensión de visualización usando una clase de tamaño, esto dará como resultado cuatro dispositivos abstractos: ancho regular-Altura regular, Ancho regular-Altura compacta, Ancho compacto-Altura regular y Ancho compacto-Altura compacta. La tabla a continuación muestra los dispositivos con iOS y sus clases de tamaño correspondientes.  enter image description here

Para establecer el tamaño de fuente para esta clase de tamaño particular, primero seleccione UILabel . Debajo del inspector de atributos, debería ver un botón más (+) al lado del campo de fuente. Haga clic en el botón + y seleccione Ancho compacto> Altura normal (o según su requisito, seleccione ancho y alto). Luego verá una nueva entrada para la opción Fuente, que está dedicada a esa clase de tamaño particular. Mantenga el tamaño intacto para la opción Fuente original pero cambie el tamaño del campo fuente wC hR (O según su selección) a los puntos requeridos (por ejemplo 14).

enter image description here