Метеческий шрифт не работает на китайский / японский / корейский на iOS 7

StackOverflow https://stackoverflow.com//questions/21009957

  •  21-12-2019
  •  | 
  •  

Вопрос

Я хочу установить курсивый стиль шрифта в 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;
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top