31

わかりましたので、SOを読んであらゆる種類のグーグルを行ってきましたが、フォントが機能しない理由がわかりません。

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

誰かが自分のラベルのテキストをカスタム フォントで表示するのを手伝ってくれることを願っています。 何か提案があるかもしれないと思っている人に感謝します!

段階的にこれが私がやったことです。

ステップ 1:インターネットから .ttf ファイルをダウンロードしました。私のファインダーでは、次のように見えます: ここに画像の説明を入力

ステップ 2:フォント ファイルをファインダーから XCode にドラッグし、[ファイルをプロジェクト フォルダーにコピー] オプションをオンにしました。したがって、私のプロジェクトでは次のことがわかります。

ここに画像の説明を入力

ステップ 3:フォント ブックでフォントを開いて、実際のファイル名を確認すると、次のように表示されます。 ここに画像の説明を入力

ステップ 4:ファイル タイプを含む XCode からのファイル名を使用して、MyApp-Info.plist ファイルにキーを追加しました。次のようになります。

ここに画像の説明を入力

ステップ 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"
)
4

2 に答える 2

38

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

于 2012-04-28T20:46:37.787 に答える
12

もう 1 つの可能性は、フォントを呼び出そうとしたときに、間違ったフォント名を呼び出している可能性があることです。使用する:

スウィフト 2.1+

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

オブジェクティブ C

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

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

UIFont(name: "yourFontName", size: 24.0) (swift) または [UIFont fontWithName:@"yourFontName" size:16.0f] (obj c). plist に追加するカスタム フォント名は、ディレクトリ内で呼び出されているファイル (.ttf または .otf を含む) と一致する必要がありますが、フォントを参照するコードは、この出力から取得したフォント名と一致する必要があります。頑張れフォントマスター!

于 2013-11-25T23:20:14.973 に答える