我试图用下载的字体绘制一些文本.我查看了API文档并搜索了Web.我找到了一个解决方案,但问题是它只适用于CoreGraphics级别框架.所以我搜索了一种转换CGFont方式UIFont,但没有办法做到这一点.
我意识到UIFont并CGFont/CTFont完全分开,即使它们是从相同的字体文件创建的.CGFont并且CTFont可以相互转换,但是UIFont,唯一的方法是使用名称和大小等属性进行重新创建.适用的代码也是分开的.
例如,CATextLayer只接受CGFont/ CTFont- 否UIFont.但是所有UIKit控件都只接受UIFont.
为什么存在这种分离?还是我错了?(在UIKit课程中使用下载字体的任何方式?)
Vin*_*rci 18
简短的回答:"只有苹果人知道"
在挖掘(反转)框架之后,更详细的答案:
UIKit.framework不使用所有 CGFont类型UIKit.framework改用CoreText CTFont和GSFont...GSFont来自...... GraphicsServices私人框架GraphicsServices... 使用 CGFont所以这是我的猜测(可能是完全错误的):
UIFont> GSFont(私人) >CGFontUIKit> GraphicsServices> CoreGraphics:
至少在关注字体方面,Apple工程师已经通过暗示框架在框架
UIKit和CoreGraphics框架之间建立了一个抽象层GraphicsServices.
iOS> iOS (私人) > Mac OSX:
我想说
CoreGraphics,为什么他们这样做,来自Mac OSX,对于iOS设备来说不是最佳的,而且UIKit只是iOS,他们在两个apis之间添加了一层.或者更一般地,他们计划有一天将UIKit与CoreGraphics完全分开......来自Mac OSX的iOS ......谁知道!苹果人呢,我的简答:)
关于使用自定义字体有UIKit,你可能有兴趣阅读此.
| 归档时间: |
|
| 查看次数: |
3699 次 |
| 最近记录: |