2012-04-28 14 views
29

okだから私はそんなことを読んでいて、あらゆる種類のグーグルをやっていますが、なぜフォントがうまくいかないのか理解できません。xcodeカスタムttfフォントが正しく動作しない

私はすべてを正しく行ったと思いますが、アプリケーションを実行すると、ボタンのテキストが、インポートしたものの代わりに標準のシステムフォントで表示されます。私はNSLog(@"%@",[UIFont familyNames]);を追加して、それがリストにあったかどうかを確認しましたが、それはisntです。私はそれが間違っていると思う。

誰かが願っています私のカスタムフォントで私のラベルのテキストを表示するのに役立ちます。 彼らは何か提案があるかもしれないと思う誰にも感謝します!

これは私がやったことです。

ステップ1:インターネットから.ttfファイルをダウンロードしました。 enter image description here

ステップ2:私のファインダーでは、それは次のようになりますを私はファインダーからXCodeのにフォントファイルをドラッグし、オプション「フォルダをプロジェクトにコピーファイル」をご確認ください。

enter image description here

ステップ3:だから、私のプロジェクトで私が見ることができます私は本当のファイル名が何であるかを確認するために、フォント帳のフォントを開いて、私はこれを参照してください。 enter image description here

ステップを4 :ファイルタイプを含むXCodeのファイル名を使用してMyApp-Info.plistファイルにキーを追加しました。

enter image description here

ステップ5:それはこのようになりますそして私のコードでは、私はこれを書く:

UIButton *thisLevelButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

[thisLevelButton setBackgroundImage:[UIImage imageNamed:@"ccLSButtonPlayed"] forState:UIControlStateNormal]; 
thisLevelButton.frame = CGRectMake(x, y, BUTTON_WIDTH, BUTTON_HEIGHT); 
thisLevelButton.tag = j; 
[thisLevelButton addTarget:self action:@selector(userSelectedButton:) forControlEvents:UIControlEventTouchUpInside]; 
[thisLevelButton.titleLabel setFont:[UIFont fontWithName:@"PressStartK" size:24]]; 
[thisLevelButton setTitle:[NSString stringWithFormat:@"%i",(j+1)] forState:UIControlStateNormal]; 

// add the button to the panel 
[subScroll addSubview:thisLevelButton]; 

は参考のために、これはフォントファミリのリストに印刷されているものです。

(
    Thonburi, 
    "Snell Roundhand", 
    "Academy Engraved LET", 
    "Marker Felt", 
    "Geeza Pro", 
    "Arial Rounded MT Bold", 
    "Trebuchet MS", 
    Arial, 
    Marion, 
    "Gurmukhi MN", 
    "Malayalam Sangam MN", 
    "Bradley Hand", 
    "Kannada Sangam MN", 
    "Bodoni 72 Oldstyle", 
    Cochin, 
    "Sinhala Sangam MN", 
    "Hiragino Kaku Gothic ProN", 
    Papyrus, 
    Verdana, 
    "Zapf Dingbats", 
    Courier, 
    "Hoefler Text", 
    "Euphemia UCAS", 
    Helvetica, 
    "Hiragino Mincho ProN", 
    "Bodoni Ornaments", 
    "Apple Color Emoji", 
    Optima, 
    "Gujarati Sangam MN", 
    "Devanagari Sangam MN", 
    "Times New Roman", 
    Kailasa, 
    "Telugu Sangam MN", 
    "Heiti SC", 
    "Apple SD Gothic Neo", 
    Futura, 
    "Bodoni 72", 
    Baskerville, 
    "Chalkboard SE", 
    "Heiti TC", 
    Copperplate, 
    "Party LET", 
    "American Typewriter", 
    "Bangla Sangam MN", 
    Noteworthy, 
    Zapfino, 
    "Tamil Sangam MN", 
    "DB LCD Temp", 
    "Arial Hebrew", 
    Chalkduster, 
    Georgia, 
    "Helvetica Neue", 
    "Gill Sans", 
    Palatino, 
    "Courier New", 
    "Oriya Sangam MN", 
    Didot, 
    "Bodoni 72 Smallcaps" 
) 
+0

ご質問ありがとうございます!私はそれが関連する質問への答えであると仮定して、指示に従った、そして、はい!私の問題は今修正されました。これは英語のフォントではなく、ペルシャ語フォントではありません。私は2年以上にわたって私の髪を引っ張ってきたし、カスタムAPIであっても決して適切な解決策を見つけることはできませんでしたが、明らかにアップルはこの鍵を情報に追加するだけでカスタムフォントを使用できるようにしています。 plist。 ありがとう、もう一度! – Neeku

答えて

37

フォントファイルをターゲットに追加していないと思われます。そのため、アプリケーションのリソースにはコピーされません。あなたのコードはここでうまく動作し、フォントファミリのリストで "Press Start K"と表示されます。

+0

よろしくお願いします。これはとても迷惑だった。私は実際にコピーしなかったファイルをドラッグしたときにターゲットにコピーすると思います。そこで私はttfファイルを削除し、手動で "MyApp"にファイルを追加しました。これはうまくいった – bkbeachlabs

+13

Xcodeのファイルインスペクタ( '⌘⌥1')には、ファイルを削除して再追加するのではなく、ターゲットのチェックボックスを単に有効にすることができる" Target Membership "セクションがあります。 – omz

+0

偉大なチップありがとう – bkbeachlabs

12

フォントを呼び出すときに間違ったフォント名を呼び出している可能性があります。用途:

スウィフト2.1+

//Check which fonts available 
for family: String in UIFont.familyNames() 
{ 
    print("\(family)") 
    for names: String in UIFont.fontNamesForFamilyName(family) 
    { 
     print("== \(names)") 
    } 
} 

のObjective C

//Check which fonts available 
for (NSString* family in [UIFont familyNames]) 
{ 
    NSLog(@"FONT %@", family); 

    for (NSString* name in [UIFont fontNamesForFamilyName: family]) 
    { 
     NSLog(@" %@", name); 
    } 
} 

あなたはUIFontで使用されなければならないフォントの実際の名前を検索するには(名前: "yourFontName"、サイズ:24.0)(swift)または[UIFont fontWithName:@ "yourFontName" size:16.0f](obj c)。あなたのplistに追加するカスタムフォント名は、ディレクトリ内のファイル(.ttfや.htmlを含む)と同じものでなければなりません。otf)、フォントを参照するコードは、この出力から得られるフォント名と一致しなければなりません。幸運のフォントマスター!

+1

ありがとう、私は同様の問題を抱えていたし、それは私がそれが考えていた別の名前としてフォントを参照していたシステムが判明。 – sudo

+0

フォント名を使用する前に、皆さんにそのことをお勧めします! – arniotaki

関連する問題