Co oznacza ostrzeżenie „automatycznie dostosowuje czcionkę wymaga użycia dynamicznego stylu tekstu”?

100

Otrzymuję następujące ostrzeżenie:

„automatycznie dostosowuje czcionkę, wymaga użycia dynamicznego stylu tekstu”

Dodano zrzut ekranu

Którego nie mogę pozbyć się ostrzeżenia jest włączone main.storyboard.

Sprawdziłem każdy UILabelw Identity Inspectorcelu upewnij się, że „automatycznie dostosowuje Font” jest zaznaczona.

K. Law
źródło
1
Podejrzewam, że „automatycznie dostosowuje czcionkę, wymaga użycia dynamicznego stylu tekstu”, prawdopodobnie w celu dostosowania go dynamicznie.
shallowThought
7
Chcesz użyć dynamicznej czcionki („Treść”, „Nagłówek”, „Podtytuł”) LUB, co bardziej prawdopodobne, wyłącz Automatically Adjusts Fonti włącz Autoshrink.
bshirley

Odpowiedzi:

53
  1. Otwórz scenorys jako kod źródłowy
  2. Wyszukaj klucz „adjustsFontForContentSizeCategory”
  3. Sprawdź, który obiekt ma tę opcję i usuń zaznaczenie pola wyboru Typ dynamiczny w narzędziu do tworzenia interfejsów.
ayalcin
źródło
21
W moim przypadku mam to ostrzeżenie, ale adjustsFontForContentSizeCategoryklucz nie pojawia się w kodzie źródłowym.
Chris Prince
Myślę, że teraz (Xcode 11) wystarczy kliknąć ostrzeżenie i wybrać obraźliwą etykietę. (Możesz więc uniknąć kroków kodu źródłowego)
garafajon
@ChrisPrince, czy udało Ci się to rozwiązać?
ScottyBlades
34

Właśnie zmienił styl tekstu do ciała i ostrzegawcze znika.

To tylko dlatego, że jest to dynamiczny typ textStyle

Zobacz listę wstępnie zdefiniowanych obsługiwanych typów dynamicznych textStyle -

wprowadź opis obrazu tutaj

Jacek
źródło
1
Zmiana go na bodywydaje się powodować utratę możliwości pogrubienia tekstu.
btrballin
31

Miałem ten sam problem. Nawet po tym, jak otworzyłem scenorys jako źródło i usunąłem klucz „AdjustsFontForContentSizeCategory”, zapisałem i wyczyściłem projekt, który nadal był wyświetlany.

Więc wtedy:

  1. Oczyszczono projekt
  2. Zamknięty Xcode
  3. Usunięto zawartość folderu danych pochodnych
  4. Ponownie otwarto Xcode i odbudowano

Zniknął. :)

Spilly
źródło
4
Krok 1: naciśnij ⇧⌥⌘K, aby wyczyścić projekt i dane pochodne. Pomiń krok 3.
Mojo66,
1
hmmm, ⇧⌥⌘K czyści folder kompilacji wewnątrz danych pochodnych aplikacji. Ale nie usuwa całego folderu derivedData. Czy to wystarczy? Lub wykonujemy zwykły „xCode Voodoo Dance”, jak opisano powyżej: D
Yaro
Voodoo Dance zadziałało dla mnie. Miałem ten sam problem i dla przestarzałych Push Segues. Ręcznie zmieniłem każdą kolejkę i etykietę, ale ostrzeżenia nie zniknęły. Usunięcie folderu DerivedData naprawiło ten problem.
danomatika
25

Wygląda na to, że był to błąd w Xcode. Oto, co zrobiłem, aby to naprawić:

  1. Zgodnie z sugestią zmień czcionkę na etykiecie, na której był wyświetlany błąd, na czcionkę dynamiczną
  2. Zaznacz pole wyboru „Automatycznie dostosowuje czcionkę”
  3. Skompiluj i uruchom projekt (błąd znika)
  4. Odznacz pole „Automatycznie dostosowuje czcionkę”
  5. Zmień czcionkę z powrotem na poprzednie ustawienie, które spowodowało błąd
  6. Odbuduj projekt

Błąd nadal zniknął.

K. Law
źródło
2
Zgadzam się. Podwójnie i potrójnie sprawdziłem moje pliki, a nawet sprawdziłem XML / źródło - jeszcze go tam nie było XCode twierdzi, że jest (nawet po „wyczyszczeniu”). Jakie to irytujące.
Josh
4
I changed the font in the label that showed the error, to a dynamic type,- Nie widzę opcji, która wygląda tak, jak dynamic typew czcionkach. Propozycje?
Chris Prince,
Teraz używam czcionki systemowej. Używałem niestandardowej czcionki w niektórych etykietach, co spowodowało problem. Jeśli korzystasz z Google Dynamic Fonts w Xcode, możesz znaleźć listę innych czcionek, które są dynamiczne. Trochę badań prowadzi długą drogę. Powodzenia.
K. Law
3
Cześć @ K.Prawo dzięki za odpowiedź, ale Xcode generuje kilka takich samych ostrzeżeń, a wszystkie widoki są w Intro.storyboard. Kiedy kliknąłem ostrzeżenie, Xcode po prostu pokazuje Storyboard, a nie konkretny element.
elia
17

Jeśli pole „Automatycznie dostosowuje czcionkę” jest zaznaczone przy użyciu niedynamicznej czcionki, pojawi się to ostrzeżenie. Odznacz pole na naruszającej etykiecie lub użyj dynamicznego typu czcionki.

wprowadź opis obrazu tutaj

Donovan King
źródło
3
W moim przypadku to pole nie jest zaznaczone, ale otrzymuję ostrzeżenie.
Chris Prince
20
Jak możesz sprawdzić, czy Twoja czcionka jest „niedynamiczna”?
user664939
1
@ user664939 Czcionki niedynamiczne mogą zmieniać rodzinę i styl. Czcionki dynamiczne nie mogą zmieniać rodziny ani stylu. Otrzyma wartość domyślną według rozmiaru. możesz ustawić rodzinę i styl z storyboardu -> inspektor atrybutów -> czcionka.
sn86
5
@ user664939: zamiast wybierać konkretną czcionkę, wybierasz „typ” czcionki. Kliknij „T” w ramce na liście rozwijanej Czcionka. W oknie, które zostanie otwarte, kliknij strzałki po prawej stronie menu Czcionka. Wybierz „Styl tekstu” z listy u dołu. Zobacz sekcję Projekt wizualny, Typografia firmy HIG, aby uzyskać informacje na temat rozmiarów punktów itp., Związanych z każdym stylem tekstu.
leanne
10
  1. Otwórz scenorys, kliknij prawym przyciskiem myszy scenorys w nawigatorze plików.

wprowadź opis obrazu tutaj

  1. Wyszukaj (polecenie F) i usuń wystąpienia adjustsFontForContentSizeCategory="YES"
ScottyBlades
źródło
1
W moim Xcode (11.1) nie ma pola „Automatycznie dostosowuje czcionkę”. Próbowałem wszystkiego innego, nic nie działało, poza tym - z 0 głosami. Thx
DrWhat