0

重複の可能性:
iPhone のカスタム フォント

の として設定するカスタム ラベルを作成しようとしていますtitleViewnavigationItem、プロジェクトに含まれているカスタム フォントにラベル フォントを設定できません。

「BADER_AL_GORDABIA-2_0.ttf」というカスタム フォント ファイルがあり、FontBook に表示される実際のフォント名は「bader_al gordabia-2」です。次の手順に従いました。

  1. アプリの展開ターゲットを確認したところ、iOS 5.1 に設定されています
  2. フォント ファイルをプロジェクト リソースに追加し、ビルド フェーズの「バンドル リソースのコピー」でビルド ターゲットに追加されていることを確認しました。
  3. info.plist ファイルに「アプリケーションが提供するフォント」として新しいキーを追加し、その中に「BADER_AL_GORDABIA-2_0.ttf」を追加しました。
  4. fontWithName メソッドで実際のフォント名「bader_al gordabia-2」を使用しました。

を使用してフォントをロードできました

UIFont * customFont = [UIFont fontWithName:@"bader_al gordabia-2" size:18.0f];

customFont が null でないことを確認しました (その説明を印刷することにより) が、問題は、このカスタム フォントを UILabel に適用できないことです。

私のコードは次のとおりです。

UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(100,10,200,24)];
    titleLabel.backgroundColor = [UIColor clearColor];
    UIFont * customFont = [UIFont fontWithName:@"bader_al gordabia-2" size:18.0f];
    [titleLabel setFont:customFont];
    titleLabel.text = @"أخبار الجمعية";
    //NSLog(@"%@", [customFont description]);

    titleLabel.textAlignment = NSTextAlignmentCenter;
    titleLabel.textColor = [UIColor whiteColor];

    [self.navigationItem setTitleView:titleLabel]; 

スタック オーバーフローを検索しようとしましたが、適切な答えが見つかりませんでした。次のリンクで指定されているカスタム ラベルも使用しようとしました: http://refactr.com/blog/2012/09/ios-tips-custom-fonts/

4

2 に答える 2

1

これが私がやっている方法です、

UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0, 300, 100)];

navLabel.backgroundColor = [UIColor clearColor];
navLabel.text = @"Set Up";
navLabel.textColor = [UIColor whiteColor];
navLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:1.0];
navLabel.shadowOffset = CGSizeMake(0, -2);
navLabel.font = [UIFont fontWithName:@"Questrial" size:28.0];
navLabel.textAlignment = UITextAlignmentCenter;
self.navigationItem.titleView = navLabel;
[navLabel release];

上記のコードのみが機能していません...そのため、アプリの plist ファイルに移動して新しい行を追加し、このキーを行に追加する必要があります。

Fonts provided by application

フォント名を item0 の値に追加し、

私のコードによると、「Questrial-Regular.ttf」です。

また、もう一つ、

つまり、フォント名が正しくわからない可能性があります。したがって、正しいフォント名を見つける必要があります。このコードを ViewdidLoad に追加すると、ファミリ名がターミナルに記録されます。

NSLog(@"%@",[UIFont familyNames]);

また、フォントに応じて正しいフォント名を見つけることができます。

この手順に従ってください。私にとってはうまくいきました。あなたにも役立つと思います。

于 2013-01-31T09:25:47.810 に答える
0

やるべきことは次のとおりです。まず、次のメソッドを任意の場所に追加して呼び出します。

+(void)logAllFonts{
    NSArray *fontFamilies = [UIFont familyNames];

    for (int i = 0; i < [fontFamilies count]; i++)
    {
      NSString *fontFamily = [fontFamilies objectAtIndex:i];
      NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
      NSLog(@"%@: %@", fontFamily, fontNames);
    }
 }

これにより、プロジェクトと plist の両方に追加した外部フォントを含む、プロジェクトに存在するすべての fontNames がログに記録されます。

次に、コンソールでそのリストを調べて、追加したフォントの正確なフォント名を見つけます (bader_al gordabia-2)。fontWithName でこの名前を使用します。

お役に立てれば

于 2013-01-30T20:31:42.723 に答える