Apa yang dimaksud dengan peringatan "menyesuaikan font secara otomatis yang memerlukan penggunaan gaya teks jenis dinamis"?

100

Saya mendapatkan peringatan berikut:

"menyesuaikan font secara otomatis membutuhkan penggunaan gaya teks jenis dinamis"

Tangkapan layar ditambahkan

Yang tidak bisa saya singkirkan adalah peringatan aktif main.storyboard.

Saya telah memeriksa setiap UILabeldalam Identity Inspectoruntuk memastikan "Menyesuaikan Otomatis Font" dicentang.

K. Hukum
sumber
1
Saya menduga "secara otomatis menyesuaikan font membutuhkan menggunakan gaya teks tipe dinamis", mungkin untuk menyesuaikannya secara dinamis.
DangkalPikir
7
Anda ingin menggunakan font dinamis ("Body", "Headline", "Subhead"), ATAU lebih mungkin, nonaktifkan Automatically Adjusts Fontdan aktifkan Autoshrink.
bshirley

Jawaban:

53
  1. Buka storyboard Anda sebagai Kode Sumber
  2. Telusuri kunci "adjustsFontForContentSizeCategory"
  3. Periksa objek mana yang memiliki opsi ini dan hapus centang pada kotak Jenis Dinamis dari pembuat antarmuka.
ayalcin
sumber
21
Dalam kasus saya, saya memiliki peringatan ini, tetapi adjustsFontForContentSizeCategorykuncinya tidak muncul di Kode Sumber.
Chris Prince
Saya pikir itu berfungsi sekarang (Xcode 11) hanya dengan mengklik peringatan dan memilih label yang menyinggung. (Jadi, Anda dapat menghindari langkah-langkah kode sumber)
garafajon
@ChrisPrince, apakah Anda akhirnya menyelesaikannya?
ScottyBlades
34

Saya baru saja mengubah gaya Teks menjadi Body & Warning vanishes.

Itu Hanya karena ini adalah tipe textStyle dinamis

Lihat daftar textStyle tipe dinamis yang didukung standar -

masukkan deskripsi gambar di sini

Mendongkrak
sumber
1
Mengubahnya menjadi bodysepertinya menghilangkan kemampuan untuk menebalkan teks.
btrballin
31

Saya memiliki masalah yang sama. Bahkan setelah saya membuka storyboard sebagai sumber dan menghapus kunci "adjustsFontForContentSizeCategory", menyimpan dan membersihkan proyek yang akan tetap ditampilkan.

Jadi saya:

  1. Membersihkan proyek
  2. Xcode tertutup
  3. Menghapus konten folder data yang diturunkan
  4. Xcode dibuka kembali dan dibangun kembali

Itu sudah hilang. :)

Spilly
sumber
4
Langkah 1: tekan ⇧⌥⌘K untuk membersihkan proyek dan data turunan. Abaikan langkah 3.
Mojo66
1
hmmm, ⇧⌥⌘K membersihkan folder build di dalam data turunan aplikasi. Tapi itu tidak menghapus seluruh folder turunanData. Apa itu cukup? Atau kami melakukan "XCode Voodoo Dance" seperti yang dijelaskan di atas: D
Yaro
Voodoo Dance berhasil untuk saya. Saya memiliki masalah yang sama dan juga Push Segues yang sudah usang. Saya secara manual mengubah setiap segmen dan label tetapi peringatan tidak hilang. Menghapus folder DerivedData memperbaikinya.
danomatika
26

Sepertinya ada bug di Xcode. Inilah yang saya lakukan untuk memperbaikinya:

  1. Ubah font di label yang menunjukkan kesalahan, ke tipe dinamis, seperti yang disarankan
  2. Pilih kotak centang untuk "Secara Otomatis Menyesuaikan Font"
  3. Bangun dan jalankan proyek (kesalahan hilang)
  4. Hapus centang pada kotak "Sesuaikan Font Secara Otomatis"
  5. Ubah font kembali ke pengaturan sebelumnya yang menyebabkan kesalahan
  6. Bangun kembali proyek

Kesalahannya masih hilang.

K. Hukum
sumber
2
Saya setuju. Ganda dan tiga kali memeriksa file saya dan bahkan memeriksa XML / sumber - itu belum ada di sana, Xcode bersikeras itu (bahkan setelah "bersih"). Menyebalkan sekali.
Josh
4
I changed the font in the label that showed the error, to a dynamic type,- Saya tidak dapat melihat opsi apa pun yang terlihat seperti dynamic typehuruf a. Saran?
Chris Prince
Saya sekarang menggunakan font sistem. Saya menggunakan font khusus di beberapa label, yang menyebabkan masalah. Jika Anda menggunakan font dinamis Google di Xcode, Anda mungkin dapat menemukan daftar font lain yang dinamis. Sedikit penelitian akan sangat bermanfaat. Semoga berhasil.
K. Law
3
Hai @ K.Law terima kasih atas jawabannya tetapi Xcode menghasilkan beberapa peringatan yang sama dan semua tampilan ada di Intro.storyboard. Saat saya mengklik peringatan, Xcode hanya menampilkan Storyboard bukan item tertentu.
elia
17

Jika kotak "Secara otomatis menyesuaikan font" dicentang dengan font non dinamis, peringatan ini akan muncul. Hapus centang pada kotak pada label yang melanggar atau gunakan jenis font dinamis.

masukkan deskripsi gambar di sini

Donovan King
sumber
3
Dalam kasus saya, kotak ini tidak dicentang, tetapi saya mendapatkan peringatannya.
Chris Prince
20
Bagaimana Anda bisa menentukan apakah font Anda "non-dinamis"?
pengguna664939
1
@ user664939 Jenis huruf non-dinamis dapat mengubah keluarga dan gaya. Font dinamis tidak dapat mengubah keluarga dan gaya. Ini akan mendapatkan default sesuai ukuran. Anda dapat mengatur keluarga dan gaya dari storyboard -> inspektur atribut -> font.
sn86
5
@ user664939: daripada memilih fon tertentu, Anda memilih fon "type". Klik kotak "T" di menu tarik-turun Font. Di jendela yang terbuka, klik panah di sebelah kanan dropdown Font itu. Pilih "Gaya Teks" dari daftar di bagian bawah. Lihat bagian Desain Visual, Tipografi HIG untuk info tentang ukuran titik, dll, terkait dengan setiap gaya teks.
leanne
10
  1. Buka storyboard Anda, klik kanan storyboard di file navigator.

masukkan deskripsi gambar di sini

  1. Cari (perintah F) dan hapus instance adjustsFontForContentSizeCategory="YES"
ScottyBlades
sumber
1
Di Xcode saya (11.1), tidak ada kotak "Secara otomatis menyesuaikan font". Saya mencoba yang lain, tidak ada yang berhasil, kecuali ini - dengan 0 suara. Thx
DrWhat