この質問はiOS 3.2以前のものに関するものです。 3.2の時点で、この機能は下記のsamvermetteの答えを使って簡単に達成できます、そして私はこれを反映するためにAccepted Answer(commandからsamvermetteへ)を変更しました。私は両方の答えに賛成を与えることはできません(投票を除く)が、それらは両方とも良いです。
私は、テキストをレンダリングするためのカスタムフォントをアプリに含めてロードしてから、それをUIKit
のような標準のUILabel
要素と共に使用したいと思います。これは可能ですか?
私はリンクの下に見つかりました:
しかし、これらは私に各グリフを自分でレンダリングすることを要求します。これは、特に複数行テキストの場合には、少々大変な作業に似ています。
私はそれが可能ではないと正直に言う投稿を見つけました、しかし正当化なしで、そう私は決定的な答えを探しています。
_ edit _ - -[UIFont fontWithName:size:]
実験に失敗しました
Harrowprint.tff( here からダウンロード)をダウンロードし、それを私のResourcesディレクトリとプロジェクトに追加しました。それから私はこのコードを試してみました:
UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];
その結果、例外がスローされました。 FinderでTTFファイルを見ると、フォント名がHarrowprintであることが確認されました。
_ edit _ - これまでに、XまたはYに関するドキュメントを読むように指示する回答がいくつもありました。これらのすべてを幅広く試してみたところ、どこにも見つかりませんでした。あるケースでは、XはiPhoneではなくOS Xにのみ関連することが判明しました。そのため、私はこの質問に賞金を設定しています。この賞金は、デバイス上でこれを機能させるのに十分な情報で応答する(文書化されたAPIのみを使用して)回答を提供する最初の人に授与します。シミュレータで作業することもボーナスになります。
_ edit _ - バウンティが最高の投票数を持つ回答に自動付与するようです。面白い。質問を解決した答えを実際に提供する人は誰もいませんでした - あなた自身のUILabel
サブクラスをコーディングするソリューションはWord-wrapをサポートしていません。これは私にとって必須の機能です。
iOS 3.2以降はこれをサポートしています。から直接 iPhone OS 3.2の新機能 doc:
カスタムフォントのサポート
カスタムフォントを使用するアプリケーションは、それらのフォントをアプリケーションバンドルに含め、それらのフォントをInfo.plistファイルにUIAppFontsキーを含めることによってシステムに登録することができます。このキーの値は、アプリケーションのバンドル内のフォントファイルを識別する文字列の配列です。システムがキーを認識すると、指定されたフォントがロードされてアプリケーションで使用可能になります。
フォントがInfo.plist
に設定されたら、カスタムフォントをIBの他のフォントとして使用することも、プログラムで使用することもできます。
アップルデベロッパフォーラムには継続的なスレッドがあります。
https://devforums.Apple.com/thread/37824 (ログインが必要)
そして、これを達成するための優れた簡単な3ステップのチュートリアルです(リンク切れは削除されました)
Info.plist
ファイルにUIAppFonts
という名前のキーを追加します。UIAppFonts
配列の項目として入力します。Info.plist
を保存[UIFont fontWithName:@"CustomFontName" size:12]
を呼ぶことができます…また、フォントがコピーバンドルリソースにあることを確認してください。
編集:iOS 3.2以降、この機能は組み込まれています。3.2より前のバージョンをサポートする必要がある場合でも、このソリューションを使用できます。
UILabel
を拡張し、.ttfファイルのロードを処理する単純なモジュールを作成しました。私はそれをApacheライセンスの下でオープンソースとして公開し、それをgithubに入れました Here。
重要なファイルはFontLabel.h
とFontLabel.m
です。
それは Genericrich's answer からのコードのいくつかを使います。
ソースをブラウズ ここ。
OR
フォントファイルをリソースにコピーする
UIAppFontsというキーをInfo.plist
ファイルに追加します。 ( "アプリケーションによって提供されるフォント)
このキーを配列にする
お持ちのフォントごとに、フォントファイルのフルネーム(拡張子を含む)をUIAppFonts配列の項目として入力してください。
Info.plist
を保存
今すぐあなたのアプリケーションであなたはあなたのUILabels
とUITextViews
などで使うカスタムフォントを得るために単に[UIFont fontWithName:@"CustomFontName" size:15]
を呼ぶことができます…
iOS 4 にカスタムフォントを使う簡単な方法があります。
Chalkduster.ttf
)を追加します。info.plist
を開き、UIAppFonts
という新しいキーを追加します。このキーの型は配列であるべきです。Chalkduster.ttf
)を含めて、この配列にカスタムフォント名を追加してください。[UIFont fontWithName:@"Chalkduster" size:16]
を使うことができます。残念ながら、IBはカスタムフォントでラベルを初期化することを許可していません。この問題を解決するには この質問 を参照してください。私のお気に入りの解決策はカスタムのUILabel
サブクラスを使うことです:
@implementation CustomFontLabel
- (id)initWithCoder:(NSCoder *)decoder
{
if (self = [super initWithCoder: decoder])
{
[self setFont: [UIFont fontWithName: @"Chalkduster" size: self.font.pointSize]];
}
return self;
}
@end
Info.plistに「アプリケーションが提供するフォント」というエントリを追加し、フォント名を文字列として含めます。
Fonts provided by application
Item 0 myfontname.ttf
Item 1 myfontname-bold.ttf
...
その後、次のコマンドを実行してフォントが含まれていることを確認してください。
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"%@", fontName);
}
}
あなたのttfファイル名はあなたがあなたのラベルにフォントを設定するときに使うのと同じ名前ではないかもしれないことに注意してください(あなたは "fontWithName"パラメータを得るために上記のコードを使うことができます):
[label setFont:[UIFont fontWithName:@"MyFontName-Regular" size:18]];
編集:この答えはiOS 3.2以降では使われていません。 UIAppFontsを使う
私がカスタムUIFont
sを正常にロードすることができた唯一の方法は、専用のGraphicsServicesフレームワークを使用することです。
以下は、アプリケーションのメインバンドルにあるすべての.ttf
フォントをロードします。
BOOL GSFontAddFromFile(const char * path);
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
return newFontCount;
}
フォントがロードされると、アップル提供のフォントと同じように使用できます。
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
[label setFont:[UIFont fontWithName:@"Consolas" size:20.0f]];
将来APIが消えた場合に備えて、GraphicsServicesを実行時にロードすることもできます。
#import <dlfcn.h>
NSUInteger loadFonts()
{
NSUInteger newFontCount = 0;
NSBundle *frameworkBundle = [NSBundle bundleWithIdentifier:@"com.Apple.GraphicsServices"];
const char *frameworkPath = [[frameworkBundle executablePath] UTF8String];
if (frameworkPath) {
void *graphicsServices = dlopen(frameworkPath, RTLD_NOLOAD | RTLD_LAZY);
if (graphicsServices) {
BOOL (*GSFontAddFromFile)(const char *) = dlsym(graphicsServices, "GSFontAddFromFile");
if (GSFontAddFromFile)
for (NSString *fontFile in [[NSBundle mainBundle] pathsForResourcesOfType:@"ttf" inDirectory:nil])
newFontCount += GSFontAddFromFile([fontFile UTF8String]);
}
}
return newFontCount;
}
iOS 8
+とXcode 6
+を使えば、これを簡単に行うことができます。手順は次のとおりです。
1)フォントをXcode
Supporting Filesフォルダにドラッグアンドドロップします。アプリを ターゲットに追加 セクションにマークすることを忘れないでください。この瞬間からあなたはIB
でこのフォントを使用してフォントパレットからそれを選択することができます。
2)このフォントをあなたのデバイスで使えるようにするには、あなたのinfo.plist
を開いてFonts provided by application
キーを追加してください。それはItem 0キーを含みます、あなたは値としてあなたのフォント名を追加しなければなりません。フォント名はフォントファイルの名前とは異なる場合があります。しかし、最初に、ほとんどの場合この作品であなたのファイル名を追加しようとします。
そうでなければ、 この記事 はいつも助けてくれました。
これは、フォント名を見つけるのに役立つ、この記事のコードの一部です。
func allFonts(){
for family in UIFont.familyNames(){
println(family)
for name in UIFont.fontNamesForFamilyName(family.description)
{
println(" \(name)")
}
}
}
ターゲットのビルドフェーズ 、 バンドルリソースのコピー にフォントファイルを追加する必要があります。それがなければ、あなたはデバイス上であなたのフォントを見ることはありません。そしてそれは予期しない行動を引き起こす可能性があります。
例えば、私はbug
がカスタムフォントを持っているのにUITextField
に遭遇しましたが、このフォントは コピーバンドルリソース にはありませんでした。そして私がこのviewcontroller
でtextfield
を探すとき、viewDidLoad
関数が呼ばれるまでに約4秒の遅れがあります。フォントの問題を解決することで、この遅れは解消されました。そのため、2回確認することをお勧めします。 (rdar:// 20028250)ところで、私はバグを再現することができませんでした、しかし問題はフォントにあったと確信しています。
私はこれを次のようにしました:
フォントをロードします。
- (void)loadFont{
// Get the path to our custom font and create a data provider.
NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"mycustomfont" ofType:@"ttf"];
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
// Create the font with the data provider, then release the data provider.
customFont = CGFontCreateWithDataProvider(fontDataProvider);
CGDataProviderRelease(fontDataProvider);
}
今、あなたのdrawRect:
で、このようなことをしなさい:
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
// Get the context.
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
// Set the customFont to be the font used to draw.
CGContextSetFont(context, customFont);
// Set how the context draws the font, what color, how big.
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSetFillColorWithColor(context, self.fontColor.CGColor);
UIColor * strokeColor = [UIColor blackColor];
CGContextSetStrokeColorWithColor(context, strokeColor.CGColor);
CGContextSetFontSize(context, 48.0f);
// Create an array of Glyph's the size of text that will be drawn.
CGGlyph textToPrint[[self.theText length]];
// Loop through the entire length of the text.
for (int i = 0; i < [self.theText length]; ++i) {
// Store each letter in a Glyph and subtract the MagicNumber to get appropriate value.
textToPrint[i] = [[self.theText uppercaseString] characterAtIndex:i] + 3 - 32;
}
CGAffineTransform textTransform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, textTransform);
CGContextShowGlyphsAtPoint(context, 20, 50, textToPrint, [self.theText length]);
}
基本的には、フォント内でオフセット(ここでは29を使用してください)を見つけるには、テキスト全体をループしてマジックナンバーを使用していく必要がありますが、うまくいきます。
また、フォントが合法的に埋め込まれていることを確認する必要があります。ほとんどの人はそうではなく、この種のことを専門とする弁護士もいますので、注意してください。
xcode 4.3
を使用している場合は、 https://stackoverflow.com/users/1292829/arne に従って、Build Phase
の下のCopy Bundle Resources
にfont
を追加する必要があります。 カスタムフォントXcode 4.3 。これは私にとってはうまくいきました。ここで私のアプリでカスタムフォントが使えるようにするための手順を示します。
OTF
(またはTTF
)ファイルを作成した新しいグループにドラッグアンドドロップし、xcodeのcopying the files over to the project folder
の選択を受け入れました。UIAppFonts
配列を作成します。拡張子ではなくnames
だけです(例: "GothamBold
"、 "GothamBold-Italic
")。project name
の上にあるProject Navigator
のところをクリックしてください。Build Phases
タブをクリックしてください。Copy Bundle Resources
」セクションを展開し、"+"
をクリックしてフォントを追加します。"+"
をクリックすると開くポップアップのファイルナビゲータからフォントファイルを選択します。add to the project
する必要があるすべてのフォントに対してこれを行います。はい、カスタムフォントを含めることができます。 UIFontのドキュメント、特にfontWithName:size:
メソッドを参照してください。
1)リソースフォルダにフォントが含まれていることを確認してください。
2)フォントの「名前」は必ずしもファイル名ではありません。
3)あなたがそのフォントを使用する法的権利を持っていることを確認してください。あなたのアプリにそれを含めることによって、あなたはそれも配布しているので、あなたはそれをする権利を持つ必要があります。
既存のiOSアプリに新しいフォントを追加するのはとても簡単です。
あなただけのフォントを追加する必要があります。あなたのリソースフォルダにfont.ttf。
アプリケーションinfo.plist
を開きます。 「アプリケーションが提供するフォント」として新しい行を追加し、フォント名をfont.ttfと入力します。
そしてフォントを設定するときはsetFont:"corresponding Font Name"
のようにしてください
あなたのフォントが追加されているかどうかはNSArray *check = [UIFont familyNames];
で確認できます。
アプリケーションがサポートするすべてのフォントを返します。
これを行う方法を順を追って説明します。追加のライブラリや特別なコーディングは不要です。
http://shang-liang.com/blog/custom-fonts-in-ios4/ /
ほとんどの場合、問題はフォントではなくメソッドにあります。そのための最善の方法は、verdanaやgeogiaのように確実に機能するフォントを使用することです。その後、目的のフォントに変更します。うまくいかない場合は、フォント名が正しくないか、フォントが整形式フォントではない可能性があります。
私はここで私のお気に入りの短いチュートリアルのうちの1つに従うことをお勧めします: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ そこからこの情報は来る。
ステップ1 - .ttfまたは.otfをFinderからプロジェクトにドラッグします
注 - メインのアプリケーションターゲットで[ターゲットに追加]ボックスを必ずクリックしてください
クリックしてターゲットに追加するのを忘れた場合は、プロジェクト階層のフォントファイルをクリックし、右側のパネルのTarget Membershipセクションのメインアプリターゲットをクリックします。
あなたのフォントがあなたのアプリターゲットの一部であることを確認するために、それらがあなたのCopy Bundle Resources in Build Phasesに現れることを確かめてください
ステップ2 - あなたのPlistにフォントファイル名を追加する
InfoセクションのカスタムiOSターゲットプロパティに移動し、そのセクションの項目にFonts provided by application
という名前のキーを追加します(入力するとオプションとして表示されるはずです)。小さな矢印をクリックして配列項目を開き、追加した.ttfファイルまたは.otfファイルの名前を入力して、これらが利用可能なフォントファイルであることをアプリに知らせます。
注 - この手順の直後にアプリがクラッシュした場合は、ここで追加したアイテムのスペルを確認してください
ステップ3 - あなたがそれらを呼ぶことができるようにあなたのフォントの名前を調べなさい
多くの場合、アプリケーションで表示されるフォント名は、そのフォントのファイル名に基づいていると思われるものとは異なります。これをコードに入れて、アプリケーションで作成されるログを調べてコード内で呼び出すフォント名を調べます。
スイフト
for family: String in UIFont.familyNames(){
print("\(family)")
for names: String in UIFont.fontNamesForFamilyName(family){
print("== \(names)")
}
}
目的C
for (NSString* family in [UIFont familyNames]){
NSLog(@"%@", family);
for (NSString* name in [UIFont fontNamesForFamilyName: family]){
NSLog(@" %@", name);
}
}
あなたのログは次のようになります。
ステップ4 - ステップ3からの名前を使って新しいカスタムフォントを使う
スイフト
label.font = UIFont(name: "SourceSansPro-Regular", size: 18)
目的C
label.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:18];
Finderで「TTF」を見つけて「情報を見る」。 「フルネーム」という見出しの下に、fontWithName
で使用した名前が付けられました(正確な名前をコピーして貼り付けただけです。この場合は '.ttf'拡張子は必要ありません)。
1つの重要な注意:あなたはそのフルネームや姓ではなく、フォントに関連した "PostScript名"を使うべきです。この名前は通常のフォントの通常の名前とは異なる場合があります。
まだ出ていませんが、次のバージョンのcocos2d(2dゲームフレームワーク)は可変長ビットマップフォントを文字マップとしてサポートする予定です。
http://code.google.com/p/cocos2d-iphone/issues/detail?id=317
作者はこのバージョンのリリース予定日を明確にしていません、しかし、私はそれが来月か2か月以内であることを示す投稿を見ました。
このステップに従ってください
1)プロジェクトにあなたのフォントをコピーする
2).plist
ファイルをソースコードモードで開きます...(注 - info.plist
は開かないでください)
3)その前に - あなたのフォントを右クリックしてそれをfontforgeか同様のエディタで開き、あなたのシステムでそれをinstall
name__にしてください、それはinstall
name__であるべきです
4)これを入力
<key>UIAppFonts</key>
<array>
<string>MyriadPro.otf</string>
</array>
5)class .m
にこのコードを入力してください
[lblPoints setFont:[UIFont fontWithName:@"Myriad Pro" size:15.0]];
ここでlblPointsはあなたのUILabel
name__の時点で変更されます
完了しました。それでもフォントが機能しない場合は、まずフォントの互換性を確認してください。
私はiOS 3.1.2でこのページのさまざまな提案を試していますが、これらが私の結論です。
FOND名がFontForgeで設定されていても、Resourcesディレクトリのフォントで[UIFont fontWithName:size:]
を使用するだけでは機能しません。
GSFontAddFromFileを使用してフォントを最初にロードした場合、[UIFont fontWithName:size:]
は機能します。しかし、GSFontAddFromFile
はiOS 3.1.2の一部ではないので、@ rpetrichで説明されているように動的にロードする必要があります。
私はこのページのアドバイスのいくつかを、iOS 5で私に役立つものにまとめました。
まず、プロジェクトにカスタムフォントを追加する必要があります。それから、@ iphoneDevのアドバイスに従い、あなたのinfo.plistファイルにそのフォントを追加する必要があります。
それをした後、これは動作します:
UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];
しかし、あなたはあなたのフォントのポストスクリプト名を知る必要があります。 FontBookにいる間に@ Daniel Woodのアドバイスに従い、command-iを押してください。
それから、あなたのカスタムフォントを楽しんでください。
最初に.odt形式のフォントをリソースに追加します。この場合はDINEngschriftStd.otfを使用し、次にこのコードを使用してフォントをラベルに割り当てます。
[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];
あなたのフォントがプロジェクトにロードされていることを確認するためにただ電話してください
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
.plistでは、フォントを宣言する必要があります。 「アプリケーションから提供されたフォント」レコードを追加し、フォントの名前を持つ項目0の文字列を追加するだけです(DINEngschriftStd.otf)。
IOS 3.2以降の場合:上記のいくつかのメソッドを使用してください。
[UIFont fontWithName:@"Real Font Name" size:16]
を使用してください。_ but _ 「実際のフォント名」は、常にFontbookに表示されるものではありません。最善の方法は、どのフォントを使用しているのか、また正確な名前は何を使用しているのかをデバイスに問い合わせることです。
私はuifont-name-grabberを使っています: uifont-name-grabber
必要なフォントをxcodeプロジェクトにドロップし、そのファイル名をそのplistに追加して、それを構築しているデバイス上で実行すると、UIFont fontWithName:
が期待する名前を使用して完全なフォントリストを電子メールで送信します。
より良い解決策は、新しいプロパティ "Fonts provided by application
"をあなたのinfo.plist
ファイルに追加することです。
そうすれば、通常のUIFont
のようにカスタムフォントを使うことができます。
ATSApplicationFontsPath
を調べる
あなたのアプリリソースフォルダーにフォントファイルを含めることを可能にし、それらはあなたのアプリで "ただ動く"ことを可能にする単純なplistエントリ。
IOS 4.1以降、カスタムフォントを使用するための新しい方法があります。それはあなたがフォントを動的にロードすることを可能にします、それはアプリに含まれているファイル、ダウンロードされたデータ、またはあなたが持っているものからのものです。必要に応じてフォントをロードすることもできますが、古い方法ではアプリの起動時にすべてのフォントをロードします。フォントが多いと、時間がかかりすぎることがあります。
新しい方法は ios-dynamic-font-loading に説明があります。
あなたはCTFontManagerRegisterGraphicsFont
関数を使って、あなたのフォントデータをバッファに入れます。古いメソッドと同じように、それはUIFont
とWebビューで利用できます。そのリンクからのサンプルコードは次のとおりです。
NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
必要なフォントをプロジェクトに追加し(画像を追加するのと同じように、Xcodeにドラッグするだけです)、それらがあなたのプロジェクトをターゲットにしていることを確認します
このメソッドを追加してカスタムフォントをロードします(appDelegate didFinishLaunchingWithOptions
で推奨)
func loadFont(filePath: String) {
let fontData = NSData(contentsOfFile: filePath)!
let dataProvider = CGDataProviderCreateWithCFData(fontData)
let cgFont = CGFontCreateWithDataProvider(dataProvider)!
var error: Unmanaged<CFError>?
if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
print("Unable to load font: %@", errorDescription, terminator: "")
}
}
使用例
if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
loadFont(fontPath)
}
フォントを使う:
UIFont(name: "My-Font", size: 16.5)
リソースフォルダ内に必要な "FONT"ファイルを追加できます。次にProject Info.plist
ファイルに行き、「アプリケーションによって提供されるフォント」というキーと「フォント名」として値を使用します。
その後、メソッド[UIFont fontwithName:@"FONT NAME" size:12];
を呼び出すことができます
はい、アプリケーションでカスタムフォントを使用できます
そこに続くステップバイステップ:
サポートファイルでプロジェクトにカスタムフォントファイルを追加する
UIAppFontsという名前のInfo.plistファイルにキーを追加します。
このキーを配列にする
お持ちのフォントごとに、フォントファイルのフルネーム(拡張子を含む)をUIAppFonts配列の項目として入力してください。
Info.plistを保存するアプリケーションで、正しいフォントが得られない場合は、これを適用した後、[UIFont fontWithName:@ "your custom font name" size:20]を呼び出して、カスタムフォントをUILabelsで使用できますカスタムフォントに、そして慎重にトップサイドのフォント名が来ているのを見て、このフォントをコピーして、ここに貼り付けてください[UIFont fontWithName:@ "ここからあなたのカスタムフォント名を過ぎた"サイズ:20]
私はあなたが正しい答えを得ることを願っています
上記の答えのいくつかは正しいですが、私はまだフォントに関する問題を抱えている人々のための詳細なビジュアルチュートリアルを書きました。
上記の解決策は、フォントをplistに追加して使用するように指示します。
[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];
正しいものです。他のハックな方法を使ってください。あなたがまだフォント名を見つけてそれらを追加することに関して問題に直面しているならば、これはチュートリアルです -
私はすべてを可能にしましたが、新しいフォントは表示されないので、解決策を見つけました。
Fotファイル(otfまたはttf)をドラッグするときは、[ターゲットに追加]の下のチェックボックスをオンにしないでください。
そうすることであなたのフォントが表示され、すべてうまくいくでしょう。
はい、アプリケーションでカスタムフォントを使用できます
そこに続くステップバイステップ:
Info.plist
ファイルに追加します。Info.plist
を保存する今度はあなたのアプリケーションであなたはあなたのUILabels
で使うカスタムフォントを得るために単に[UIFont fontWithName:@"your Custom font Name" size:20]
を呼ぶことができますこれを適用した後、正しいフォントが得られない場合は、カスタムフォントをダブルクリックし、上面のフォント名が慎重に入力されていることを確認してコピーし、ここに貼り付けます。[UIFont fontWithName:@" here past your Custom font Name" size:20]
拡張機能として@ bdev's answer は、カスタムフォントのみをリストアップするための更新版です。
ステップ1:@ bdevの答えを使ってすべてのシステムフォントを見つけてファイルに保存します。
次のコードを最初のView Controllerの-(void)viewDidLoad
の[super viewDidLoad]
の後(またはApp Delegate内)に配置します。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSMutableArray *system_fonts = [NSMutableArray array];
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
[system_fonts addObject:fontName];
}
}
if([paths count] > 0) {
[system_fonts writeToFile:[[paths objectAtIndex:0]
stringByAppendingPathComponent:@"array.out"] atomically:YES];
}
アプリを一度実行します。その後やめてください。
ステップ2:プロジェクトにカスタムフォントを追加する
受け入れられた答えで示された方法を使用して、あなたのカスタムフォントを追加してください(.plist
を更新することと、Add To Target
をチェックすることによって構築するためにフォントファイルを追加することを忘れないでください)。
ステップ3:システムフォントと現在のフォントリストを比較する
手順1のコードを次のように置き換えます。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSMutableArray *system_fonts = [NSMutableArray arrayWithContentsOfFile:[[paths objectAtIndex:0]
stringByAppendingPathComponent:@"array.out"]];
for (NSString *familyName in [UIFont familyNames]) {
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
if (![system_fonts containsObject:fontName]) {
NSLog(@"%@", fontName);
}
}
}
アプリを実行すると、追加したカスタムフォントのリストが表示されます。
これはiOS 3.2からiOS 6までに適用されます(将来のリリースではおそらくうまくいくでしょう)。 .ttc
と.ttf
でも動作します。
前のすべての答えが示したように、それは非常に可能性があり、新しいiOSバージョンではかなり簡単です。
これは技術的な答えではないことを私は知っていますが、多くの人がそれを誤解しているので(したがって、訴訟を起こすと多額の費用がかかるライセンスに違反することになります)。 iOS(または他の種類の)アプリのフォントは基本的に 再配布 /フォントです。商用フォントのほとんどのライセンスは 禁止 再配布を行いますので、ライセンスに従って行動していることを確認してください。