Baru saja memutakhirkan iPod touch saya ke iOS 7.0.3 dan "HelveticaNeue-Italic" sepertinya telah menghilang. Ketika saya bertanya di telepon dengan:
[UIFont fontNamesForFamilyName:@"Helvetica Neue"]
Saya mendapatkan fontNames berikut (13):
HelveticaNeue-BoldItalic,
HelveticaNeue-Light,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-CondensedBold,
HelveticaNeue-MediumItalic,
HelveticaNeue-Thin,
HelveticaNeue-Medium,
HelveticaNeue-ThinItalic,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-Bold,
HelveticaNeue,
HelveticaNeue-CondensedBlack
Ketika saya melakukan kueri yang sama yang berjalan di simulator, saya mendapatkan (14):
HelveticaNeue-BoldItalic,
HelveticaNeue-Light,
**HelveticaNeue-Italic,**
HelveticaNeue-UltraLightItalic,
HelveticaNeue-CondensedBold,
HelveticaNeue-MediumItalic,
HelveticaNeue-Thin,
HelveticaNeue-Medium,
HelveticaNeue-Thin_Italic,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-Bold,
HelveticaNeue,
HelveticaNeue-CondensedBlack
Adakah yang melihat ini?
---- Informasi baru ----
Saya kembali ke video WWDC 2013 "Menggunakan Font dengan Kit Teks" dan bagian yang menarik dimulai pada pukul 12:22. Pembawa acara berbicara tentang "MetaFonts" di OS X sebagai contoh. Apa yang dia katakan adalah bahwa font di bawah panggilan seperti:
+ (NSFont *)messageFontOfSize:(CGFloat)fontSize
tidak dijamin untuk mengembalikan font dasar yang sama di berbagai versi atau bahkan penggunaan yang berbeda. Contohnya adalah Lucinda Grande. Dia tampaknya tidak mengatakan bahwa penggunaan "HelveticaNeue-Italic" dapat berpindah dari satu versi ke versi lainnya.
Jadi saya membuat percobaan di iOS 7. Saya membuat font saya dengan kode berikut:
UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithName:@"Helvetica Neue" size:16.0];
UIFontDescriptor *symbolicFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];
UIFont *fontWithDescriptor = [UIFont fontWithDescriptor:symbolicFontDescriptor size:16.0];
Saya mendapatkan UIFont yang valid kembali untuk fontWithDescriptor dan ketika saya menanyakan font untuk fontName dengan:
[fontWithDescriptor fontName]
Aku kembali ...
HelveticaNeue-Italic
Pergi gambar ???
Jadi jawaban yang mungkin untuk 7.0.3 sepertinya adalah kode di atas.
---- Tweak lebih lanjut ----
Meskipun solusinya berhasil di atas, menurut saya itu tidak benar secara formal. Saya telah beralih ke solusi berikut
UIFontDescriptor *fontDescriptor = [[UIFontDescriptor alloc] init];
UIFontDescriptor *fontDescriptorForHelveticaNeue = [fontDescriptor fontDescriptorWithFamily:@"Helvetica Neue"];
UIFontDescriptor *symbolicFontDescriptor = [fontDescriptorForHelveticaNeue fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitItalic];
textFont = [UIFont fontWithDescriptor:symbolicFontDescriptor size:textFontPointSize];
Ini tampaknya melakukan semua hal yang benar. Saya mencoba pendekatan sebelumnya dengan keluarga font lain dan tampaknya menjadi bingung dengan fontName dan fontFamily. Semoga ini membantu!