2012-08-12 62 views
2

可能重复:
iPhone - Convert CTFont to UIFont?加载自定义字体到iOS动态

你知道我怎么可能能够添加自定义字体到iOS动态无前将其添加到项目编译时间?

我正在查看应用程序运行时下载字体的情况,然后动态加载以供使用。

如果这是可能的,我想在加载它后用它作为UIFont。

我通过一些搜索的可能性要做到这一点,我发现我可以使用CoreText加载字体:这样做后

- (CTFontRef)newCustomFontWithFileName:(NSString *)fontFileName 
           ofType:(NSString *)type 
           andSize:(float)pointSize 
{ 
    NSString *fontPath = [[NSBundle mainBundle] pathForResource:fontFileName ofType:type]; 
    NSData *data = [[NSData alloc] initWithContentsOfFile:fontPath]; 
    CGDataProviderRef fontProvider = CGDataProviderCreateWithCFData((CFDataRef)data); 
    [data release]; 

    CGFontRef cgFont = CGFontCreateWithDataProvider(fontProvider); 
    CGDataProviderRelease(fontProvider); 

    CTFontRef font = CTFontCreateWithGraphicsFont(cgFont, pointSize, NULL, NULL); 
    CGFontRelease(cgFont); 
    return font; 
} 

但是,是否有可能CTFontRef转换为UIFont为整个应用程序的用法?

请让我知道你们认识/想到的! :)

+1

这是** **不是这个问题的一个副本,并将接受这个问题的答案依赖于字体是一个标准的字体或者是应用程序包的一部分,这个问题是关于在运行时下载的字体,并且对于这样的字体,其他问题的答案**不会起作用** – 2012-08-15 01:42:21

回答

0

从iOS 5.1开始,没有公共API会从CGFontCTFont创建UIFont。你运气不好。 :(

公开赛http://bugreport.apple.com如果你想让他们加入一个API,这个功能请求。

+0

awww man :(好的,谢谢你的支持! :) – Adrian 2012-08-15 00:33:30