みんなヘレ!
iOSプロジェクトにdin.otfフォントを追加しました。それから私のplistに私は持っています:
今、私がそれを使いたいとき、私はちょうどこの行を書かなければなりません:
lalel.font = [UIFont fontWithName:@"din" size:12.f];
私は正しいですか?それはまったく機能しません...ありがとう!
みんなヘレ!
iOSプロジェクトにdin.otfフォントを追加しました。それから私のplistに私は持っています:
今、私がそれを使いたいとき、私はちょうどこの行を書かなければなりません:
lalel.font = [UIFont fontWithName:@"din" size:12.f];
私は正しいですか?それはまったく機能しません...ありがとう!
次のコードを追加して、インポート後にデバイスで使用できるすべてのフォントを一覧表示してみてください。
(から取得: http://ajnaware.wordpress.com/2008/10/24/list-of-fonts-available-on-the-iphone/ )
レガシーアンサー
// List all fonts on iPhone
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont)
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
[fontNames release];
}
[familyNames release];
そして、フォント名を検索してみてください。
// 従来の回答を終了
.plist ファイルに追加する必要のない、実行時にフォントをロードする方法を見つけました。
+ (void)loadFontAtPath:(NSString*)path
{
NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
if(data == nil)
{
#ifdef DEBUG
NSLog(@"Failed to load font. Data at path is null path = %@", path);
#endif //ifdef Debug
return;
}
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if(!CTFontManagerRegisterGraphicsFont(font, &error)){
#ifdef DEBUG
CFStringRef errorDescription = CFErrorCopyDescription(error);
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
return;
#endif //ifdef Debug
}
CFStringRef fontName = CGFontCopyFullName(font);
NSLog(@"Loaded: %@", fontName);
[[self sharedInstance] addFont:font withName:(NSString *)fontName];
CFRelease(fontName);
CFRelease(font);
CFRelease(provider);
}
+ (void) unloadFont:(NSString*) fontName
{
CFErrorRef error;
CGFontRef fontref = [[self sharedInstance] getFontWithName:fontName];
if(fontref)
{
CTFontManagerUnregisterGraphicsFont(fontref, &error);
[[self sharedInstance] removeFontWithName:(NSString *)fontName];
}
else
{
NSLog(@"WARNING: Font cannot be unloaded: %@", fontName);
}
}
NSLog(@"Loaded: %@", fontName); という名前をそのまま使用できます。出力。