iPhone アプリで独自フォントを(かんたんに)使う方法。
(2012-12-13 追記) 4.1 以降なら CTFontManagerRegisterFontsForURL() 等を使えば以下のような面倒なことをしなくて済む。
CGFontRef から table ひっぱってきて自力で unicode→glyph 変換して CGContextShowGlyphs() でも実現できるけど、 面倒くさいので UIFont なり CoreText のほうがいいよね、ということで。
info.plist に UIAppFonts を追加して
UIFont * font = [UIFont fontWithName: @"CustomFontName" size: 48];
とか
NSDictionary * attrs = [NSDictionary dictionaryWithObject: @"CustomFontName" forKey: (id)kCTFontNameAttribute];
CTFontDescriptorRef fd = CTFontDescriptorCreateWithAttributes((CFDictionaryRef)attrs);
CTFontRef font = CTFontCreateWithFontDescriptor(fd, 48, NULL);
CFRelease(fd);
のようにする。
iOS 4.0 以降限定。
info.plist には手をつけずに
NSData * fontData = [NSData dataWithContentsOfURL: fontURL];
CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData((CFDataRef)fontData);
CGFontRef cgFont = CGFontCreateWithDataProvider(dataProvider);
CGDataProviderRelease(dataProvider);
CTFontRef font = CTFontCreateWithGraphicsFont(cgFont, 48, NULL, NULL);
CGFontRelease(cgFont);
のようにする。
こちらは iOS 3.2 以降限定。 この方法だと 1 のように名前指定してフォントを作ることができないので、UIFont が必要な場合には使えないっぽい。