Xcode 6 memiliki fitur baru di mana font dan ukuran font masuk UILabel
, UITextField
dan UIButton
dapat diatur secara otomatis berdasarkan kelas ukuran konfigurasi perangkat saat ini, langsung di storyboard. Misalnya, Anda dapat menyetel UILabel
untuk menggunakan ukuran font 12 pada konfigurasi "lebar apa pun, tinggi ringkas" (seperti pada iPhone dalam lanskap) dan ukuran 18 pada konfigurasi "lebar reguler, tinggi reguler" (seperti di iPad ). Informasi lebih lanjut tersedia di sini:
developer.apple.com/size_class
Ini adalah fitur hebat dalam teori karena dapat membuatnya tidak perlu menyetel font berbeda secara terprogram pada fitur UI berdasarkan konfigurasi perangkat. Saat ini, saya memiliki beberapa kode bersyarat yang menetapkan font berdasarkan jenis perangkat, tetapi jelas, itu berarti saya harus mengatur font secara terprogram di mana saja di seluruh aplikasi. Jadi awalnya saya sangat senang dengan fitur ini, tetapi saya menemukan bahwa fitur ini memiliki masalah parah dalam penggunaan sebenarnya untuk saya (mungkin bug). Perhatikan bahwa saya membangun berdasarkan SDK 8 dan menetapkan target penerapan minimum iOS 8 , jadi ini tidak ada hubungannya dengan kompatibilitas dengan versi lama iOS.
Masalahnya adalah ini: Jika saya menetapkan ukuran font yang berbeda untuk kelas ukuran yang berbeda dan menggunakan font "Sistem" yang disediakan oleh iOS , semuanya berfungsi seperti yang diharapkan, dan ukuran font berubah berdasarkan kelas ukuran. Jika saya menggunakan font khusus yang disediakan oleh aplikasi saya (ya, saya sudah menyiapkannya dengan benar di bundel aplikasi saya, karena berfungsi secara terprogram) dan menyetel font khusus ke label di storyboard XCode 6 , yang juga berfungsi seperti yang diharapkan. Tapi ketika saya mencoba menggunakan ukuran font khusus yang berbeda untuk kelas ukuran yang berbeda, di storyboard, tiba-tiba tidak berfungsi. Satu-satunya perbedaan dalam konfigurasi adalah font yang saya pilih (font kustom vs. font Sistem). Sebaliknya, semua font muncul di fileperangkat dan simulator sebagai font sistem default pada ukuran default , terlepas dari kelas ukurannya (dan saya memverifikasi melalui debugger bahwa itu menggantikan font sistem untuk font sebenarnya yang ditentukan di storyboard). Jadi pada dasarnya, fitur kelas ukuran tampaknya rusak untuk font khusus. Selain itu, yang menarik, font khusus benar-benar menampilkan dan menyesuaikan ukuran dengan benar di panel "Pratinjau" XCode 6 untuk pengontrol tampilan: ia berhenti bekerja hanya saat berjalan pada sistem iOS yang sebenarnya (yang membuat saya berpikir bahwa saya mengonfigurasinya dengan benar) .
Saya mencoba beberapa font kustom yang berbeda, dan sepertinya tidak berhasil untuk salah satu font tersebut, tetapi selalu berfungsi jika saya menggunakan "Sistem".
Bagaimanapun, apakah ada orang lain yang melihat masalah ini di Xcode 6 ?
Ada gagasan tentang apakah ini bug di iOS 8, Xcode, atau sesuatu
Apa yang saya lakukan salah?
Satu-satunya solusi yang saya temukan, seperti yang saya katakan, adalah terus mengatur font secara terprogram seperti yang saya lakukan untuk sekitar tiga versi iOS karena itu berfungsi.
Tetapi saya ingin dapat menggunakan fitur ini jika saya bisa membuatnya berfungsi dengan font khusus. Menggunakan font Sistem tidak dapat diterima untuk desain kami.
INFO TAMBAHAN: Pada Xcode 8.0, bug telah diperbaiki.