O que significa o aviso “ajusta automaticamente a fonte requer o uso de um estilo de texto de tipo dinâmico”?


97

Estou recebendo o seguinte aviso:

"ajusta automaticamente a fonte requer o uso de um estilo de texto de tipo dinâmico"

Captura de tela adicionada

Que eu não consigo me livrar do aviso está ligado main.storyboard.

Verifiquei todos os UILabelem Identity Inspectorpara ter certeza de que a opção "Automaticamente ajusta a fonte" está desmarcada.


1
Eu suspeito que "o ajuste automático da fonte requer o uso de um estilo de texto de tipo dinâmico", provavelmente para ajustá-lo dinamicamente.
shallowThought

7
Você deseja usar uma fonte dinâmica ("Corpo", "Título", "Subtítulo") OU, mais provavelmente, desligue Automatically Adjusts Fonte ligue Autoshrink.
bshirley

Respostas:


53
  1. Abra seu storyboard como código-fonte
  2. Pesquise a chave "adjustsFontForContentSizeCategory"
  3. Verifique qual objeto tem essa opção e desmarque a caixa de seleção Dynamic Type do construtor de interface.

21
No meu caso, tenho este aviso, mas a adjustsFontForContentSizeCategorychave não aparece no Código-fonte.
Chris Prince

Acho que funciona agora (Xcode 11) apenas clicar no aviso e selecionar o rótulo ofensivo. (Assim, você pode evitar as etapas do código-fonte)
garafajon

@ChrisPrince, você acabou resolvendo isso?
ScottyBlades

34

Acabei de alterar o estilo de texto para Corpo e aviso desaparece.

É só porque é do tipo dinâmico textStyle

Veja a lista de textStyle de tipo dinâmico compatível predefinido -

insira a descrição da imagem aqui


1
Mudá-lo para bodyparece fazer com que perca a capacidade de colocar o texto em negrito.
btrball em 01 de

31

Eu tive o mesmo problema. Mesmo depois de abrir o storyboard como fonte e remover a chave "adjustsFontForContentSizeCategory", salvei e limpei o projeto, ele ainda seria exibido.

Então eu:

  1. Limpei o projeto
  2. Xcode fechado
  3. Excluiu o conteúdo da pasta de dados derivados
  4. Xcode reaberto e reconstruído

Ele se foi. :)


4
Etapa 1: pressione ⇧⌥⌘K para limpar o projeto e os dados derivados. Omita a etapa 3.
Mojo66 de

1
hmmm, ⇧⌥⌘K limpa a pasta de construção dentro dos derivadosData do aplicativo. Mas isso não exclui toda a pasta Derivados. Isso é suficiente? Ou fazemos o usual "xCode Voodoo Dance" conforme descrito acima: D
Yaro

O Voodoo Dance funcionou para mim. Eu tive o mesmo problema e também para segmentos push obsoletos. Mudei manualmente cada segue e rótulo, mas os avisos não foram embora. Remover a pasta DerivedData corrigiu isso.
Danomatika

25

Parece ter sido um bug no Xcode. Isso é o que eu fiz para consertar:

  1. Altere a fonte do rótulo que apresentou o erro para um tipo dinâmico, conforme sugerido
  2. Marque a caixa de seleção para "Ajusta automaticamente a fonte"
  3. Compile e execute o projeto (o erro desaparece)
  4. Desmarque a caixa "Ajusta automaticamente a fonte"
  5. Mude a fonte de volta para a configuração anterior que causou o erro
  6. Reconstrua o projeto

O erro ainda desapareceu.


2
Concordo. Verifiquei duas ou três vezes meus arquivos e até mesmo verifiquei XML / fonte - não estava lá ainda, o XCode insiste que está (mesmo depois de uma "limpeza"). Que irritante.
Josh

4
I changed the font in the label that showed the error, to a dynamic type,- Não consigo ver nenhuma opção que pareça ser um dynamic typenas fontes. Sugestões?
Chris Prince

Agora estou usando a fonte do sistema. Eu estava usando uma fonte personalizada em alguns dos rótulos, o que causou o problema. Se você pesquisar fontes dinâmicas no Xcode, poderá encontrar uma lista de outras fontes que são dinâmicas. Um pouco de pesquisa vai longe. Boa sorte.
K. Law

3
Olá @ K.Law, obrigado pela resposta, mas o Xcode gera vários avisos iguais e todas as visualizações estão no Intro.storyboard. Quando eu cliquei em aviso, o Xcode apenas mostrou o Storyboard não um item específico.
elia

17

Se a caixa "Ajustar fonte automaticamente" estiver marcada com uma fonte não dinâmica, este aviso aparecerá. Desmarque a caixa no rótulo incorreto ou use um tipo de fonte dinâmica.

insira a descrição da imagem aqui


3
No meu caso, esta caixa está desmarcada, mas estou recebendo o aviso.
Chris Prince

20
Como você pode determinar se sua fonte é "não dinâmica"?
user664939

1
@ user664939 As fontes não dinâmicas podem mudar a família e o estilo. As fontes dinâmicas não podem alterar a família e o estilo. Ele ficará padrão de acordo com o tamanho. você pode definir a família e o estilo em storyboard -> inspetor de atributos -> fonte.
sn86

5
@ user664939: em vez de selecionar uma fonte específica, você seleciona um "tipo" de fonte. Clique no "T" em caixa no menu suspenso Fonte. Na janela que é aberta, clique nas setas à direita do menu suspenso Fonte. Escolha um "Estilo de texto" na lista na parte inferior. Veja o Design Visual do HIG, seção Tipografia para informações sobre tamanhos de pontos, etc, relacionados a cada estilo de texto.
leanne

9
  1. Abra seu storyboard, clique com o botão direito em storyboard no navegador de arquivos.

insira a descrição da imagem aqui

  1. Pesquise (comando F) e exclua instâncias de adjustsFontForContentSizeCategory="YES"

1
No meu Xcode (11.1), não há caixa "Ajusta automaticamente a fonte". Tentei de tudo, nada funcionou, exceto isso - com 0 votos. Thx
DrWhat
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.