Che cosa significa l'avviso "richiede la regolazione automatica del carattere utilizzando uno stile di testo di tipo dinamico"?


100

Ricevo il seguente avviso:

"regola automaticamente il carattere richiede l'utilizzo di uno stile di testo di tipo dinamico"

Screenshot aggiunto

Di cui non riesco a sbarazzarmi l'avviso è acceso main.storyboard.

Ho controllato ogni UILabelin Identity Inspectorper assicurarmi che "Regola automaticamente il carattere" sia deselezionato.


1
Sospetto che "la regolazione automatica del carattere richieda l'utilizzo di uno stile di testo di tipo dinamico", probabilmente per regolarlo dinamicamente.
superficiale Pensato

7
Desideri utilizzare un carattere dinamico ("Corpo", "Titolo", "Sottotitolo") O, più probabilmente, disattivarlo Automatically Adjusts Fonte attivarlo Autoshrink.
bshirley

Risposte:


53
  1. Apri il tuo storyboard come codice sorgente
  2. Cerca la chiave "AdjustsFontForContentSizeCategory"
  3. Controlla quale oggetto ha questa opzione e deseleziona la casella di controllo Tipo dinamico dal generatore di interfacce.

21
Nel mio caso, ho questo avviso, ma la adjustsFontForContentSizeCategorychiave non appare nel codice sorgente.
Chris Prince,

Penso che ora funzioni (Xcode 11) per fare clic sull'avviso e seleziona l'etichetta incriminata. (Quindi puoi evitare i passaggi del codice sorgente)
garafajon

@ChrisPrince, hai finito per risolverlo?
ScottyBlades

34

Ho appena cambiato lo stile del testo in Corpo e l'avviso scompare.

È solo perché è di tipo dinamico textStyle

Visualizza l'elenco di textStyle di tipo dinamico supportato predefinito -

inserisci qui la descrizione dell'immagine


1
Cambiarlo in bodysembra fargli perdere la capacità di essere testo in grassetto.
btrballin

31

Ho avuto lo stesso problema. Anche dopo aver aperto lo storyboard come sorgente e aver rimosso la chiave "AdjustsFontForContentSizeCategory", salvato e pulito il progetto sarebbe comunque visualizzato.

Allora io:

  1. Pulito il progetto
  2. Xcode chiuso
  3. Eliminato il contenuto della cartella dei dati derivati
  4. Xcode riaperto e ricostruito

Era andato. :)


4
Passaggio 1: premere ⇧⌥⌘K per pulire il progetto e i dati derivati. Ometti il ​​passaggio 3.
Mojo66

1
hmmm, ⇧⌥⌘K pulisce la cartella build all'interno dei derivatiData dell'app. Ma non cancella l'intera cartella derivatiData. È abbastanza? Oppure facciamo la solita "xCode Voodoo Dance" come descritto sopra: D
Yaro

Voodoo Dance ha funzionato per me. Ho avuto lo stesso problema e anche per Push Segues deprecati. Ho cambiato manualmente ogni segue ed etichetta, ma gli avvisi non sono scomparsi. La rimozione della cartella DerivedData lo ha risolto.
danomatika

26

Sembra che sia stato un bug in Xcode. Questo è quello che ho fatto per risolverlo:

  1. Cambia il carattere nell'etichetta che ha mostrato l'errore, in un tipo dinamico, come suggerito
  2. Seleziona la casella di controllo per "Regola automaticamente il carattere"
  3. Crea ed esegui il progetto (l'errore scompare)
  4. Deseleziona la casella "Regola automaticamente il carattere"
  5. Riporta il carattere all'impostazione precedente che ha causato l'errore
  6. Ricostruisci il progetto

L'errore è ancora sparito.


2
Sono d'accordo. Doppio e triplo controllato i miei file e anche controllato XML / sorgente - non era ancora lì XCode insiste che lo sia (anche dopo una "pulizia"). Che noioso.
Josh

4
I changed the font in the label that showed the error, to a dynamic type,- Non riesco a vedere alcuna opzione che sembri una dynamic typenei caratteri. Suggerimenti?
Chris Prince,

Ora sto usando il carattere di sistema. Stavo usando un carattere personalizzato in alcune delle etichette, che ha causato il problema. Se cerchi caratteri dinamici su Google in Xcode, potresti essere in grado di trovare un elenco di altri caratteri che sono dinamici. Una piccola ricerca fa molto. In bocca al lupo.
K. Law

3
Ciao @ K.Law, grazie per la risposta, ma Xcode genera diversi avvisi e tutte le visualizzazioni si trovano nella Intro.storyboard. Quando ho fatto clic sull'avviso, Xcode mostra semplicemente lo Storyboard non un elemento specifico.
elia

17

Se la casella "Regola automaticamente il carattere" è selezionata con un carattere non dinamico, verrà visualizzato questo avviso. Deseleziona la casella sull'etichetta incriminata o utilizza un tipo di carattere dinamico.

inserisci qui la descrizione dell'immagine


3
Nel mio caso, questa casella è deselezionata, ma ricevo l'avviso.
Chris Prince,

20
Come puoi determinare se il tuo carattere è "non dinamico"?
user664939

1
@ user664939 I caratteri non dinamici possono cambiare famiglia e stile. I caratteri dinamici non sono in grado di cambiare famiglia e stile. Otterrà l'impostazione predefinita in base alle dimensioni. puoi impostare famiglia e stile da storyboard -> inspector attributi -> font.
sn86

5
@ user664939: invece di selezionare un font specifico, selezioni un "tipo" di font. Fare clic sulla casella "T" nel menu a discesa Carattere. Nella finestra che si apre, fai clic sulle frecce a destra del menu a discesa Carattere. Scegli uno "Stile di testo" dall'elenco in basso. Vedere la sezione Design visivo, Tipografia di HIG per informazioni sulle dimensioni in punti, ecc., Relative a ogni stile di testo.
leanne

10
  1. Apri lo storyboard, fai clic con il pulsante destro del mouse sullo storyboard nel navigatore di file.

inserisci qui la descrizione dell'immagine

  1. Cerca (comando F) ed elimina le istanze di adjustsFontForContentSizeCategory="YES"

1
Nel mio Xcode (11.1), non c'è la casella "Regola automaticamente il carattere". Ho provato tutto il resto, niente ha funzionato, tranne questo - con 0 voti. Thx
DrWhat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.