¿Qué significa la advertencia "el ajuste automático de la fuente requiere el uso de un estilo de texto de tipo dinámico"?

98

Recibo la siguiente advertencia:

"ajusta automáticamente la fuente requiere el uso de un estilo de texto de tipo dinámico"

Captura de pantalla agregada

Que no puedo deshacerme de la advertencia está encendida main.storyboard.

He comprobado todos UILabellos elementos Identity Inspectorpara asegurarme de que la opción "Ajusta automáticamente la fuente" no esté seleccionada.

K. Ley
fuente
1
Sospecho que "el ajuste automático de la fuente requiere el uso de un estilo de texto de tipo dinámico", probablemente para ajustarlo dinámicamente.
shallowThought
7
Desea utilizar una fuente dinámica ("Cuerpo", "Título", "Subtítulo") O, más probablemente, apague Automatically Adjusts Fonty encienda Autoshrink.
bshirley

Respuestas:

53
  1. Abra su guión gráfico como código fuente
  2. Busque la clave "adjustsFontForContentSizeCategory"
  3. Compruebe qué objeto tiene esta opción y desmarque la casilla de verificación Tipo dinámico del generador de interfaces.
ayalcin
fuente
21
En mi caso, tengo esta advertencia, pero la adjustsFontForContentSizeCategoryclave no aparece en el código fuente.
Chris Prince
Creo que ahora funciona (Xcode 11) con solo hacer clic en la advertencia y selecciona la etiqueta ofensiva. (Para que pueda evitar los pasos del código fuente)
garafajon
@ChrisPrince, ¿terminaste resolviendo eso?
ScottyBlades
34

Acabo de cambiar el estilo del texto a Cuerpo y la advertencia desaparece.

Es solo porque es de tipo dinámico textStyle

Consulte la lista de textStyle de tipo dinámico admitido predefinido -

ingrese la descripción de la imagen aquí

Jack
fuente
1
Cambiarlo bodyparece hacer que pierda la capacidad de ser texto en negrita.
btrballin
31

Yo tuve el mismo problema. Incluso después de abrir el guión gráfico como fuente y eliminar la clave "adjustsFontForContentSizeCategory", guardé y limpié el proyecto que aún se mostraría.

Entonces yo:

  1. Limpió el proyecto
  2. Xcode cerrado
  3. Eliminó el contenido de la carpeta de datos derivados
  4. Xcode reabierto y reconstruido

Se ha ido. :)

Spilly
fuente
4
Paso 1: presione ⇧⌥⌘K para limpiar el proyecto y los datos derivados. Omita el paso 3.
Mojo66
1
hmmm, ⇧⌥⌘K limpia la carpeta de compilación dentro de los datos derivados de la aplicación. Pero no elimina toda la carpeta Derivadata. ¿Es suficiente? O hacemos el "xCode Voodoo Dance" habitual como se describe anteriormente: D
Yaro
Voodoo Dance funcionó para mí. Tuve el mismo problema y también para Push Segues obsoletos. Cambié manualmente cada segue y etiqueta, pero las advertencias no desaparecieron. La eliminación de la carpeta DerivedData lo solucionó.
Danomatika
25

Parece haber sido un error en Xcode. Esto es lo que hice para solucionarlo:

  1. Cambie la fuente en la etiqueta que mostró el error, a un tipo dinámico, como se sugiere
  2. Seleccione la casilla de verificación para "Ajusta la fuente automáticamente"
  3. Cree y ejecute el proyecto (el error desaparece)
  4. Desmarca la casilla "Ajusta la fuente automáticamente".
  5. Cambie la fuente a la configuración anterior que causó el error
  6. Reconstruir el proyecto

El error aún desapareció.

K. Ley
fuente
2
Estoy de acuerdo. Comprobé dos y tres veces mis archivos e incluso comprobé XML / fuente; todavía no estaba allí XCode insiste en que sí (incluso después de una "limpieza"). Que molesto.
Josh
4
I changed the font in the label that showed the error, to a dynamic type,- No veo ninguna opción que parezca estar dynamic typeen las fuentes. Sugerencias
Chris Prince
Ahora estoy usando la fuente del sistema. Estaba usando una fuente personalizada en algunas de las etiquetas, lo que causó el problema. Si busca fuentes dinámicas en Google en Xcode, es posible que pueda encontrar una lista de otras fuentes que son dinámicas. Una pequeña investigación tomará un largo camino. Buena suerte.
K. Law
3
Hola @ K.Law, gracias por la respuesta, pero Xcode genera varias advertencias iguales y todas las vistas están en el Intro.storyboard. Cuando hice clic en la advertencia, Xcode simplemente muestra el Storyboard, no un elemento específico.
elia
17

Si la casilla "Ajusta la fuente automáticamente" está marcada con una fuente no dinámica, aparecerá esta advertencia. Desmarque la casilla de la etiqueta infractora o utilice un tipo de fuente dinámica.

ingrese la descripción de la imagen aquí

Rey Donovan
fuente
3
En mi caso, esta casilla no está marcada, pero recibo la advertencia.
Chris Prince
20
¿Cómo puede determinar si su fuente es "no dinámica"?
user664939
1
@ user664939 Las fuentes no dinámicas pueden cambiar la familia y el estilo. Las fuentes dinámicas no pueden cambiar la familia y el estilo. Se obtendrá por defecto según el tamaño. puede establecer la familia y el estilo desde el guión gráfico -> inspector de atributos -> fuente.
sn86
5
@ user664939: en lugar de seleccionar una fuente específica, selecciona un "tipo" de fuente. Haga clic en la casilla "T" en el menú desplegable Fuente. En la ventana que se abre, haga clic en las flechas a la derecha de esa lista desplegable Fuente. Elija un "Estilo de texto" de la lista en la parte inferior. Consulte la sección Diseño visual y tipografía de HIG para obtener información sobre tamaños de puntos, etc., relacionados con cada estilo de texto.
leanne
9
  1. Abra su guión gráfico, haga clic con el botón derecho en el guión gráfico en el navegador de archivos.

ingrese la descripción de la imagen aquí

  1. Busque (comando F) y elimine instancias de adjustsFontForContentSizeCategory="YES"
ScottyBlades
fuente
1
En mi Xcode (11.1), no hay un cuadro "Ajusta la fuente automáticamente". Probé todo lo demás, nada funcionó, excepto esto, con 0 votos. Thx
DrWhat