1

2 つのカスタム .ttf フォントと .otf フォントがあります。次のコード行を使用して、それらを CoreText にロードしようとしています。

CTFontRef fontRef = CTFontCreateWithName(CFSTR("Ronnia"), self.fontSize, NULL);

イライラすることに、「American Typewriter」などのインストール済みフォントで動作します。しかし、さらに紛らわしいのは、インストールしたカスタム フォントが UILabels で動作することがわかったことです。fontWithName

4

2 に答える 2

1

iOS でカスタム フォントを使用するには、プロジェクトにドラッグ アンド ドロップしてフォントを追加するだけです。Info.plist の拡張子付きのフォント名の配列をキー「アプリケーションが提供するフォント」で言及します。次に、以下のコードを使用してすべてのフォント ファミリ名を出力します。

for (NSString* family in [UIFont familyNames])
{
  DebugLog(@"FONT FAMILY: %@", family);

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

コンソール印刷:

Arial ヘブライ語
ArialHebrew-Bold ArialHebrew
-Light
ArialHebrew

Calibri Calibri Calibri -
Bold
Calibri

ジョージア




次に、コンソールから、実際のフォント名を取得します (上記のとおり)。以下のコードを使用してフォントを作成します -

コア テキスト :
CTFontRef fontRef = CTFontCreateWithName((CFStringRef)fontName, fontSize, NULL);

UIKit で: UIFont *font = [UIFont fontWithName:fontName size:10];

注:こちらfontName = @"Calibri-Bold"は拡張子なしです。

于 2016-02-04T10:11:01.230 に答える
-1

カスタム フォントが UILabel で動作する場合、CoreText で次のように動作できるはずです。

fontRef = CTFontCreateWithName((CFStringRef)fontName, fontSize, NULL);

フォントを作成したら、NSAttributedString の attributed-dictionary の値 kCTFontAttributeName の fontRef として設定する必要があります。わたしにはできる。

于 2012-08-22T02:07:18.223 に答える