Que signifie l'avertissement «ajuste automatiquement la police à l'aide d'un style de texte de type dynamique»?

98

Je reçois l'avertissement suivant:

"ajuste automatiquement la police nécessite l'utilisation d'un style de texte de type dynamique"

Capture d'écran ajoutée

Ce que je ne peux pas me débarrasser de l'avertissement est allumé main.storyboard.

J'ai vérifié chaque UILabeldans le Identity Inspectorpour m'assurer que la case "Ajuste automatiquement la police" n'est pas cochée.

K. Loi
la source
1
Je soupçonne que "ajuste automatiquement la police nécessite l'utilisation d'un style de texte de type dynamique", probablement pour l'ajuster dynamiquement.
shallow Pensée
7
Vous souhaitez utiliser une police dynamique ("Corps", "Titre", "Sous-titre"), OU plus probablement, désactiver Automatically Adjusts Fontet activer Autoshrink.
bshirley

Réponses:

53
  1. Ouvrez votre storyboard en tant que code source
  2. Rechercher la clé "ajustsFontForContentSizeCategory"
  3. Vérifiez quel objet a cette option et décochez la case Type dynamique du générateur d'interface.
ayalcine
la source
21
Dans mon cas, j'ai cet avertissement, mais la adjustsFontForContentSizeCategoryclé n'apparaît pas dans le code source.
Chris Prince
Je pense que cela fonctionne maintenant (Xcode 11) pour simplement cliquer sur l'avertissement et il sélectionne l'étiquette incriminée. (Vous pouvez donc éviter les étapes du code source)
garafajon
@ChrisPrince, avez-vous fini par résoudre ce problème?
ScottyBlades
34

Je viens de changer le style du texte en Corps et l'avertissement disparaît.

C'est juste parce que c'est du type textStyle dynamique

Voir la liste des types dynamiques pris en charge prédéfinis textStyle -

entrez la description de l'image ici

Jack
la source
1
Le changer en bodysemble lui faire perdre la capacité d'être du texte en gras.
btrballin
31

J'ai eu le même problème. Même après avoir ouvert le storyboard en tant que source et supprimé la clé "ajustsFontForContentSizeCategory", j'ai enregistré et nettoyé le projet qu'il afficherait toujours.

Alors je:

  1. Nettoyé le projet
  2. Xcode fermé
  3. Suppression du contenu du dossier de données dérivé
  4. Xcode réouvert et reconstruit

C'était parti. :)

Spilly
la source
4
Étape 1: appuyez sur ⇧⌥⌘K pour nettoyer le projet et les données dérivées. Omettre l'étape 3.
Mojo66
1
hmmm, ⇧⌥⌘K nettoie le dossier de construction dans les données dérivées de l'application. Mais il ne supprime pas tout le dossier dérivéData. Est-ce suffisant? Ou nous faisons le "xCode Voodoo Dance" habituel comme décrit ci-dessus: D
Yaro
Voodoo Dance a travaillé pour moi. J'ai eu le même problème et pour les Push Segues obsolètes également. J'ai changé manuellement chaque segment et étiquette, mais les avertissements n'ont pas disparu. La suppression du dossier DerivedData l'a corrigé.
danomatika
25

Cela semble avoir été un bogue dans Xcode. Voici ce que j'ai fait pour y remédier:

  1. Changez la police dans l'étiquette qui a montré l'erreur, en un type dynamique, comme suggéré
  2. Cochez la case "Ajuste automatiquement la police"
  3. Générez et exécutez le projet (l'erreur disparaît)
  4. Décochez la case "Ajuste automatiquement la police"
  5. Remplacez la police par le paramètre précédent à l'origine de l'erreur
  6. Reconstruire le projet

L'erreur a toujours disparu.

K. Loi
la source
2
Je suis d'accord. Double et triple vérifié mes fichiers et même vérifié XML / source - il n'était pas encore là XCode insiste sur le fait qu'il est (même après un «nettoyage»). Comme c'est ennuyeux.
Josh
4
I changed the font in the label that showed the error, to a dynamic type,- Je ne vois aucune option qui ressemble à une dynamic typedans les polices. Suggestions?
Chris Prince
J'utilise maintenant la police système. J'utilisais une police personnalisée dans certaines des étiquettes, ce qui a causé le problème. Si vous recherchez des polices dynamiques dans Xcode, vous pourrez peut-être trouver une liste d'autres polices dynamiques. Un peu de recherche va un long chemin. Bonne chance.
K. Law
3
Salut @ K.Law merci pour la réponse mais Xcode génère plusieurs avertissements identiques et toutes les vues sont dans l'intro.storyboard. Lorsque j'ai cliqué sur avertissement, Xcode n'affiche que le Storyboard pas un élément spécifique.
elia
17

Si la case "Ajuste automatiquement la police" est cochée avec une police non dynamique, cet avertissement apparaîtra. Décochez la case de l'étiquette incriminée ou utilisez un type de police dynamique.

entrez la description de l'image ici

Donovan King
la source
3
Dans mon cas, cette case n'est pas cochée, mais je reçois l'avertissement.
Chris Prince
20
Comment pouvez-vous déterminer si votre police est "non dynamique"?
user664939
1
@ user664939 Les polices non dynamiques peuvent changer de famille et de style. Les polices dynamiques ne peuvent pas changer de famille et de style. Il obtiendra la valeur par défaut selon la taille. vous pouvez définir la famille et le style à partir du storyboard -> inspecteur d'attributs -> police.
sn86
5
@ user664939: au lieu de sélectionner une police spécifique, vous sélectionnez un "type" de police. Cliquez sur le "T" encadré dans la liste déroulante Police. Dans la fenêtre qui s'ouvre, cliquez sur les flèches à droite de cette liste déroulante Police. Choisissez un "Style de texte" dans la liste en bas. Consultez la section Conception visuelle, Typographie du HIG pour obtenir des informations sur les tailles de points, etc., liées à chaque style de texte.
leanne
9
  1. Ouvrez votre storyboard, cliquez avec le bouton droit sur le storyboard dans le navigateur de fichiers.

entrez la description de l'image ici

  1. Recherchez (commande F) et supprimez les instances de adjustsFontForContentSizeCategory="YES"
ScottyBlades
la source
1
Dans mon Xcode (11.1), il n'y a pas de boîte "Ajuste automatiquement la police". J'ai essayé tout le reste, rien n'a fonctionné, sauf cela - avec 0 voix. Thx
DrWhat