Fuente en cursiva no funciona para chino / japonés / coreano en iOS 7
Pregunta
Quiero configurar el estilo de fuente en italic en UiteXTVIEW, pero la fuente en cursiva simplemente no funciona para chino / japonés / coreano en iOS 7. ¿Alguien podría ayudar?
Solución
Porque no hay fuentes chinas de estilo cursiva en iOS, debe usarla transformación afín aInclinate la fuente china de estilo normal.
El código a continuación proporciona un inclinación de 15 ° a Heiti SC Medium
:
CGAffineTransform matrix = CGAffineTransformMake(1, 0, tanf(15 * (CGFloat)M_PI / 180), 1, 0, 0);
UIFontDescriptor *desc = [UIFontDescriptor fontDescriptorWithName:@"Heiti SC Medium" matrix:matrix];
textView.font = [UIFont fontWithDescriptor:desc size:17];
efecto real:
Otros consejos
No estoy resolviendo su problema, sino que le recuerde que este tipo de "fuente de cursiva programática" tiene una lectura realmente mala.
Para el texto CJK, la forma correcta de expresar énfasis (o cita) es usar otro estilo (generalmente fuente Serif). Para chinos simplificados, use Songti, Fangsong o Kaiti en lugar de oblicuo para énfasis si su texto normal está utilizando Heiti (predeterminado de iOS). No estoy muy familiarizado con coreano y japonés, pero usan enfoques similares.
Aquí hay una lista de fuentes para iOS 7: Soporte http://. apple.com/kb/ht5878?viewlocale=en_us& ;locale=en_us Mincho Font japonés "Hiragino Mincho Pron" está disponible directamente. Las fuentes adicionales chinas no están instaladas de forma predeterminada. Tendrás que descargar primero. Consulte este ejemplo de cómo instalar fuentes adicionales proporcionadas por el sistema: https://github.com/fdstevex/ Fdsfontdownloader / .
Sé que es un poco complicado, pero esto es realmente cómo hacemos cursiva.
de acuerdo con @ an0, pero de esta manera hechos transformados son mejores para leer y entender
CGAffineTransform CGAffineTransformMakeSkew (CGFloat degree) {
CGAffineTransform t = CGAffineTransformIdentity;
t.c = (degree * M_PI / 180.0f);
return t;
}