Italic Font not work for Chinese/Japanese/Korean on iOS 7

為{幸葍}努か 提交于 2019-12-03 09:15:28

Because there are no italic styled Chinese fonts on iOS, you need to use affine transformation to slant the normal styled Chinese font.

The code below gives a 15° slant to 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];

Real effect:

I’m not solving your problem, but to remind you that this kind of “programmatic italic font” has really bad readability.

For CJK text, the right way to express emphasis (or quote) is to use another style (usually serif font). For Simplified Chinese, use Songti, Fangsong, or Kaiti instead of oblique for emphasis if your normal text is using Heiti (iOS default). I’m not very familiar with Korean and Japanese, but they use similar approaches.

Here is a font list for iOS 7: http://support.apple.com/kb/HT5878?viewlocale=en_US&locale=en_US Japanese Mincho font “Hiragino Mincho ProN” is available directly. Extra Chinese fonts are not installed by default. You’ll need to download first. Please refer to this example for how to install additional system-provided fonts: https://github.com/fdstevex/FDSFontDownloader/ .

I know it’s a little bit complicated, but this is really how we do italic.

Agree with @an0 but In this way to made transform are better for read and understand

CGAffineTransform CGAffineTransformMakeSkew (CGFloat degree) {
    CGAffineTransform t = CGAffineTransformIdentity;
    t.c = (degree * M_PI / 180.0f);
    return t;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!