每當我使用CTFontCreateWithFontDescriptor()
(以下摘錄自該article引用)核心文本加載所有的系統字體成駐留內存
我發現所有的字體映射,似乎周圍的20MB浪費。
dispatch_queue_t queue = dispatch_queue_create("font.worker", NULL);
dispatch_async(queue, ^(void) {
NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
[attributes setObject:@"Helvetica" forKey:(id)kCTFontFamilyNameAttribute];
[attributes setObject:[NSNumber numberWithFloat:36.0f] forKey:(id)kCTFontSizeAttribute];
CTFontDescriptorRef fontDesc = CTFontDescriptorCreateWithAttributes((CFDictionaryRef)attributes);
CTFontRef matchingFont = CTFontCreateWithFontDescriptor(fontDesc, 36.0f, NULL);
CFRelease(matchingFont);
CFRelease(fontDesc);
});
dispatch_release(queue);
我聽說它是固定在iOS 5中,這樣的問題是:
是否可以使用自定義的字體與核心文本,但只加載必需的字體?
'CTFontCreateWithName()'做了魔法! P.S.感謝您澄清映射文件的情況。 – 2012-01-04 08:09:35