Метеческий шрифт не работает на китайский / японский / корейский на iOS 7
Вопрос
Я хочу установить курсивый стиль шрифта в UITExtView, но итальный шрифт просто не работает для китайских / японских / корейских на iOS 7. Conling Conse Conse?
Решение
Потому что в iOS нет читалических стилей в стиле китайских шрифтов, вам нужно использовать Аффинное преобразование уклон в нормальном стиле китайского шрифта.
Код ниже дает 15 ° для 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];
.
Реальный эффект:
Другие советы
Я не решаю свою проблему, но, чтобы напомнить вам, что этот вид «программный курсивый шрифт» имеет действительно плохую читаемость.
для текста CJK, правильный способ выразить акцент (или цитату) - использовать другой стиль (обычно Serif Contry). Для упрощенного китайского, используйте SONGTI, Fangsong или Kaiti вместо наклона для акцента, если ваш обычный текст использует Heiti (iOS по умолчанию). Я не очень знаком с корейским и японским, но они используют подобные подходы.
Вот список шрифтов для iOS 7: http:// Поддержка. apple.com/kb/ht5878?viewlocale=en_us&locale=en_us . Японский шрифт Mincho «Hiragino Mincho Pron» доступен напрямую. Дополнительные китайские шрифты не устанавливаются по умолчанию. Вам нужно будет скачать сначала. Пожалуйста, обратитесь к этому примеру для того, как установить дополнительные системные шрифты: https://github.com/fdstevex/ Fdsfontdownloader / .
Я знаю, что это немного сложно, но это действительно, как мы делаем курсивом.
Согласитесь с @ an0, но таким образом, чтобы сделать преобразование лучше для чтения и понимать
CGAffineTransform CGAffineTransformMakeSkew (CGFloat degree) {
CGAffineTransform t = CGAffineTransformIdentity;
t.c = (degree * M_PI / 180.0f);
return t;
}
.