【问题标题】:Italic Font not work for Chinese/Japanese/Korean on iOS 7斜体字体不适用于 iOS 7 上的中文/日文/韩文
【发布时间】:2014-01-27 09:33:09
【问题描述】:

我想在 UITextView 中设置斜体字体样式,但斜体字体在 iOS 7 上不适用于中文/日文/韩文。有人可以帮忙吗?

【问题讨论】:

  • 为什么需要这个?亚洲字符集中一般不使用斜体。
  • 因为我想以相同的样式显示文本,而不仅仅是中文/日文/韩文。
  • 您可能需要接受某些语言的不同之处并相应地进行调整。在日语中,您可以通过在每个字母上方添加点来将单词加粗。你希望它用英语工作吗?
  • 你可以看看,iOS 7 电子邮件应用程序和 Evernote 使用斜体字体的中文/日文/韩文都可以正常工作。

标签: ios fonts ios7 cjk italic


【解决方案1】:

我不是在解决你的问题,而是提醒你,这种“程序化斜体”的可读性真的很差。

对于 CJK 文本,表达强调(或引用)的正确方法是使用另一种样式(通常是衬线字体)。对于简体中文,如果您的普通文本使用黑体(iOS 默认),请使用松体、方松或开体而不是斜体来强调。我对韩语和日语不是很熟悉,但他们使用类似的方法。

这是 iOS 7 的字体列表:http://support.apple.com/kb/HT5878?viewlocale=en_US&locale=en_US 日文 Mincho 字体“Hiragino Mincho ProN”可直接使用。默认不安装额外的中文字体。您需要先下载。如何安装额外的系统提供的字体请参考这个例子:https://github.com/fdstevex/FDSFontDownloader/

我知道这有点复杂,但这确实是我们使用斜体的方式。

【讨论】:

  • 谢谢你的建议,我去看看!
【解决方案2】:

同意@an0,但是通过这种方式进行转换更便于阅读和理解

CGAffineTransform CGAffineTransformMakeSkew (CGFloat degree) {
    CGAffineTransform t = CGAffineTransformIdentity;
    t.c = (degree * M_PI / 180.0f);
    return t;
}

【讨论】:

    【解决方案3】:

    由于iOS上没有斜体中文字体,需要使用affine transformation来倾斜正常的中文字体。

    下面的代码向Heiti SC Medium倾斜了15°:

    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];
    

    实际效果:

    【讨论】:

      猜你喜欢
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      相关资源
      最近更新 更多