uli*_*ess 4 cocoa drawing italic core-text ios
我正在使用CoreText在Mac/iOS跨平台代码中绘制一些文本.我可能正在使用操作系统中没有安装真正"Italic"版本的字体供所有用户使用,但是他们需要知道文本是斜体的.
使用AppKit的NSAttributedString -drawAtPoint :,我可以使用NSObliquenessAttributeName使文本倾斜(因此看起来斜体 - 好吧,倾斜).CoreText似乎没有此属性的等效项.至少我在CTStringAttributes.h中找不到任何东西(并不是说在CoreText发布几年之后还有任何文档).
有谁知道如何在iOS上使用CoreText获取倾斜文本?
我尝试使用CTFontCreateWithName()剪切矩阵的仿射变换参数.例如
CGAffineTransform matrix = { 1, 0, 0.5, 1, 0, 0 };
CTFontRef myFont = CTFontCreateWithName(CFSTR("Helvetica"), 48, &matrix);
Run Code Online (Sandbox Code Playgroud)
这将产生相当极端的偏差(假设我做对了),但你明白了.
更新:
事实上,文档似乎暗示这是做事的正确方法.
将没有斜体特征的字体显示为斜体通常是一个坏主意。但是,我可以理解,在某些情况下无论如何都必须执行此操作。
我现在想到的唯一解决方案是创建带有剪切字体矩阵的自定义字体:
CGAffineTransform matrix = CGAffineTransformMake(1, tan(degreesToRadians(0)), tan(degreesToRadians(20)), 1, 0, 0);
CTFontRef myfont = CTFontCreateWithName(CFSTR("Helvetica"), 48, &matrix);
Run Code Online (Sandbox Code Playgroud)
您必须使用矩阵并查看什么会带来最佳结果。(请注意,这是我的头脑和互联网的虚假代码混合。)
| 归档时间: |
|
| 查看次数: |
1377 次 |
| 最近记录: |