Objective-C
iPhone
iPad
Xcode
iOS

iOSアプリでカスタムフォントを利用する

More than 3 years have passed since last update.

iOSアプリで自分で用意したフォントを使いたいときってありますよね。
今回はその実装方法を紹介します。

フォントの形式

Xcode6で利用できるフォントの形式は

  • OpenTypeFont (*.otf)
  • TrueTypeFont (*.ttf)
  • TrueTypeCollection (*.ttc)

の3つのようです。

組み込み方法

  1. Xcodeのプロジェクト内にフォントファイルをドラッグ&コピーする
    (Copy items if neededにチェックマークを入れるのを忘れずに!)

  2. プロジェクト > TARGET > Build Phases を開く

  3. Copy Bundle Resources にフォントを追加する
    (これは自動で追加されていると思いますので、確認してください)

Xcode5まではInfo.plistを編集しなければならなかったのですが、
Xcode6からは必要ないみたいです。
簡単になりましたね!

利用方法

StoryBoardで設定する

  1. 設置した UILabel を選択する
  2. Font 項目を選択し、 Custom に変更する (デフォルトは System になっている部分です)
  3. Family で用意したフォントを選択する

Xcode6からはStoryBoard上でカスタムフォントを設定できるようになりました。
実際に見ながら組めるので、とても便利!

ソースコードで設定する

UILabel *label = [UILabel new];

UIFont *font = [UIFont fontWithName:@"MyFontName" size:15.f];
[label setFont:font];

これは今までと一緒ですね。
フォント名は PostScript名 という物を指定する必要が有るみたいです。

PostScript名を調べる

Font Bookを利用する

  1. フォントをMacにインストールする
  2. Font Bookを開く
  3. ユーザータブを選択する
  4. インストールしたフォントを選択する
  5. PostScript名項目を確認

Terminalで調べる

Fontをインストールしたくない場合は、Terminalを使って調べることもできます。

$ mdls /Users/Owner/Downloads/CustomFont.ttc

ターミナルで mdls の後にスペースを開けて調べたいフォントファイルをドラッグすると、
自動でパスも入力されるので楽ちんです。
コマンドを走らせると、ずらずらとたくさん出てきますね。
その中の
com_apple_ats_name_postscript
PostScript名 です。

下記はMacにデフォルトで入っている Futura フォントで調べてみました

com_apple_ats_name_postscript  = (
    "Futura-CondensedExtraBold",
    "Futura-CondensedMedium",
    "Futura-Medium",
    "Futura-MediumItalic"
)

4種類ありますね。

Original

$ mdls /Library/Fonts/Futura.ttc

com_apple_ats_name_family      = (
    Futura
)
com_apple_ats_name_fond        = (
    "Futura-CondensedExtraBold",
    "Futura-CondensedMedium",
    "Futura-Medium",
    "Futura-MediumItalic"
)
com_apple_ats_name_full        = (
    "Futura Condensed ExtraBold",
    "Futura Condensed Medium",
    "Futura Medium",
    "Futura Medium Italic"
)
com_apple_ats_name_postscript  = (
    "Futura-CondensedExtraBold",
    "Futura-CondensedMedium",
    "Futura-Medium",
    "Futura-MediumItalic"
)
com_apple_ats_name_style       = (
    "Condensada extranegrita",
    "Condensada mediana",
    Condensado,
    Condensato,
    "Condensato medio",
    "Condensed ExtraBold",
    "Condensed Medium",
    "Condense\U0301 extragras",
    "Condense\U0301 moyen",
    "Fortettet ekstra fet",
    "Fortettet medium",
    "Gecomprimeerd ExtraVet",
    "Gecomprimeerd Gemiddeld",
    "Gemiddeld Cursief",
    Halbfett,
    "Halbfett, Kursiv",
    "Ita\U0301lico Me\U0301dio",
    "Kavennettu lihava",
    "Kavennettu voimakas",
    Medel,
    "Medel kursiv",
    Media,
    "Mediana cursiva",
    Medio,
    "Medio corsivo",
    Medium,
    "Medium Italic",
    "Medium kursiivi",
    "Medium kursiv",
    Moyen,
    "Moyen italique",
    "Me\U0301dio",
    "Schmal, Extrafett",
    "Schmal, Halbfett",
    "Smal ekstra fed",
    "Smal extrafet",
    "Smal medium",
    "\U0421\U0440\U0435\U0434\U043d\U0438\U0438\U0306",
    "\U0421\U0440\U0435\U0434\U043d\U0438\U0438\U0306 \U043a\U0443\U0440\U0441\U0438\U0432\U043d\U044b\U0438\U0306",
    "\U0423\U0437\U043a\U0438\U0438\U0306 \U0441\U0432\U0435\U0440\U0445\U0436\U0438\U0440\U043d\U044b\U0438\U0306",
    "\U0423\U0437\U043a\U0438\U0438\U0306 \U0441\U0440\U0435\U0434\U043d\U0438\U0438\U0306",
    "\U30b3\U30f3\U30c6\U3099\U30f3\U30b9\U30fb\U30a8\U30af\U30b9\U30c8\U30e9\U30db\U3099\U30fc\U30eb\U30c8\U3099",
    "\U30b3\U30f3\U30c6\U3099\U30f3\U30b9\U30fb\U30df\U30c6\U3099\U30a3\U30a2\U30e0",
    "\U30df\U30c6\U3099\U30a3\U30a2\U30e0",
    "\U30df\U30c6\U3099\U30a3\U30a2\U30e0\U30fb\U30a4\U30bf\U30ea\U30c3\U30af",
    "\U4e2d\U659c\U9ad4",
    "\U4e2d\U7b49",
    "\U4e2d\U7b49\U659c\U4f53",
    "\U4e2d\U9ed1",
    "\U58d3\U7e2e\U4e2d\U9ad4",
    "\U58d3\U7e2e\U52a0\U9ed1\U9ad4",
    "\U7a84\U52a0\U9ed1\U9ad4",
    "\U7d27\U7f29\U4e2d\U7b49\U4f53",
    "\U110c\U1161\U1100\U1161\U11ab \U110e\U116e\U11a8\U1109\U1169 \U1100\U1167\U11ab\U110e\U116e\U11af\U110e\U1166",
    "\U110c\U1161\U1100\U1161\U11ab \U110e\U116e\U11a8\U1109\U1169 \U110c\U116e\U11bc\U1100\U1161\U11ab\U110e\U1166",
    "\U110c\U116e\U11bc\U1100\U1161\U11ab \U110b\U1175\U1110\U1162\U11af\U1105\U1175\U11a8\U110e\U1166",
    "\U110c\U116e\U11bc\U1100\U1161\U11ab\U110e\U1166"
)
com_apple_ats_names            = (
    "9.0d2e1",
    "Condensada extranegrita",
    "Condensada mediana",
    Condensado,
    Condensato,
    "Condensato medio",
    "Condensed ExtraBold",
    "Condensed Medium",
    "Condense\U0301 extragras",
    "Condense\U0301 moyen",
    "Fortettet ekstra fet",
    "Fortettet medium",
    Futura,
    "Futura Condensed ExtraBold",
    "Futura Condensed Medium",
    "Futura Medium",
    "Futura Medium Italic",
    "Futura-CondensedExtraBold",
    "Futura-CondensedMedium",
    "Futura-Medium",
    "Futura-MediumItalic",
    "Gecomprimeerd ExtraVet",
    "Gecomprimeerd Gemiddeld",
    "Gemiddeld Cursief",
    Halbfett,
    "Halbfett, Kursiv",
    "Ita\U0301lico Me\U0301dio",
    "Kavennettu lihava",
    "Kavennettu voimakas",
    Medel,
    "Medel kursiv",
    Media,
    "Mediana cursiva",
    Medio,
    "Medio corsivo",
    Medium,
    "Medium Italic",
    "Medium kursiivi",
    "Medium kursiv",
    Moyen,
    "Moyen italique",
    "Me\U0301dio",
    "Paul Renner (1928)",
    "Schmal, Extrafett",
    "Schmal, Halbfett",
    "Smal ekstra fed",
    "Smal extrafet",
    "Smal medium",
    "\U00a9 Copyright 1998, Neufville Digital. ALL RIGHTS RESERVED. This font is licensed, not sold, and may not be reproduced without the written consent of Neufville Digital. Parts \U00a9 Visualogik Technology & Design, 1998.",
    "\U0421\U0440\U0435\U0434\U043d\U0438\U0438\U0306",
    "\U0421\U0440\U0435\U0434\U043d\U0438\U0438\U0306 \U043a\U0443\U0440\U0441\U0438\U0432\U043d\U044b\U0438\U0306",
    "\U0423\U0437\U043a\U0438\U0438\U0306 \U0441\U0432\U0435\U0440\U0445\U0436\U0438\U0440\U043d\U044b\U0438\U0306",
    "\U0423\U0437\U043a\U0438\U0438\U0306 \U0441\U0440\U0435\U0434\U043d\U0438\U0438\U0306",
    "\U30b3\U30f3\U30c6\U3099\U30f3\U30b9\U30fb\U30a8\U30af\U30b9\U30c8\U30e9\U30db\U3099\U30fc\U30eb\U30c8\U3099",
    "\U30b3\U30f3\U30c6\U3099\U30f3\U30b9\U30fb\U30df\U30c6\U3099\U30a3\U30a2\U30e0",
    "\U30df\U30c6\U3099\U30a3\U30a2\U30e0",
    "\U30df\U30c6\U3099\U30a3\U30a2\U30e0\U30fb\U30a4\U30bf\U30ea\U30c3\U30af",
    "\U4e2d\U659c\U9ad4",
    "\U4e2d\U7b49",
    "\U4e2d\U7b49\U659c\U4f53",
    "\U4e2d\U9ed1",
    "\U58d3\U7e2e\U4e2d\U9ad4",
    "\U58d3\U7e2e\U52a0\U9ed1\U9ad4",
    "\U7a84\U52a0\U9ed1\U9ad4",
    "\U7d27\U7f29\U4e2d\U7b49\U4f53",
    "\U110c\U1161\U1100\U1161\U11ab \U110e\U116e\U11a8\U1109\U1169 \U1100\U1167\U11ab\U110e\U116e\U11af\U110e\U1166",
    "\U110c\U1161\U1100\U1161\U11ab \U110e\U116e\U11a8\U1109\U1169 \U110c\U116e\U11bc\U1100\U1161\U11ab\U110e\U1166",
    "\U110c\U116e\U11bc\U1100\U1161\U11ab \U110b\U1175\U1110\U1162\U11af\U1105\U1175\U11a8\U110e\U1166",
    "\U110c\U116e\U11bc\U1100\U1161\U11ab\U110e\U1166"
)
kMDItemAuthors                 = (
    "Paul Renner (1928)"
)
kMDItemContentCreationDate     = 2014-09-09 22:53:24 +0000
kMDItemContentModificationDate = 2014-09-09 22:53:24 +0000
kMDItemContentType             = "public.truetype-collection-font"
kMDItemContentTypeTree         = (
    "public.truetype-collection-font",
    "public.truetype-font",
    "public.font",
    "public.data",
    "public.item"
)
kMDItemCopyright               = "© Copyright 1998, Neufville Digital. ALL RIGHTS RESERVED. This font is licensed, not sold, and may not be reproduced without the written consent of Neufville Digital. Parts © Visualogik Technology & Design, 1998."
kMDItemDateAdded               = 2014-10-17 07:41:56 +0000
kMDItemDisplayName             = "Futura.ttc"
kMDItemFonts                   = (
    "Condensada extranegrita",
    "Condensada mediana",
    Condensado,
    Condensato,
    "Condensato medio",
    "Condensed ExtraBold",
    "Condensed Medium",
    "Condense\U0301 extragras",
    "Condense\U0301 moyen",
    "Fortettet ekstra fet",
    "Fortettet medium",
    Futura,
    "Futura Condensed ExtraBold",
    "Futura Condensed Medium",
    "Futura Medium",
    "Futura Medium Italic",
    "Futura-CondensedExtraBold",
    "Futura-CondensedMedium",
    "Futura-Medium",
    "Futura-MediumItalic",
    "Gecomprimeerd ExtraVet",
    "Gecomprimeerd Gemiddeld",
    "Gemiddeld Cursief",
    Halbfett,
    "Halbfett, Kursiv",
    "Ita\U0301lico Me\U0301dio",
    "Kavennettu lihava",
    "Kavennettu voimakas",
    Medel,
    "Medel kursiv",
    Media,
    "Mediana cursiva",
    Medio,
    "Medio corsivo",
    Medium,
    "Medium Italic",
    "Medium kursiivi",
    "Medium kursiv",
    Moyen,
    "Moyen italique",
    "Me\U0301dio",
    "Schmal, Extrafett",
    "Schmal, Halbfett",
    "Smal ekstra fed",
    "Smal extrafet",
    "Smal medium",
    "\U0421\U0440\U0435\U0434\U043d\U0438\U0438\U0306",
    "\U0421\U0440\U0435\U0434\U043d\U0438\U0438\U0306 \U043a\U0443\U0440\U0441\U0438\U0432\U043d\U044b\U0438\U0306",
    "\U0423\U0437\U043a\U0438\U0438\U0306 \U0441\U0432\U0435\U0440\U0445\U0436\U0438\U0440\U043d\U044b\U0438\U0306",
    "\U0423\U0437\U043a\U0438\U0438\U0306 \U0441\U0440\U0435\U0434\U043d\U0438\U0438\U0306",
    "\U30b3\U30f3\U30c6\U3099\U30f3\U30b9\U30fb\U30a8\U30af\U30b9\U30c8\U30e9\U30db\U3099\U30fc\U30eb\U30c8\U3099",
    "\U30b3\U30f3\U30c6\U3099\U30f3\U30b9\U30fb\U30df\U30c6\U3099\U30a3\U30a2\U30e0",
    "\U30df\U30c6\U3099\U30a3\U30a2\U30e0",
    "\U30df\U30c6\U3099\U30a3\U30a2\U30e0\U30fb\U30a4\U30bf\U30ea\U30c3\U30af",
    "\U4e2d\U659c\U9ad4",
    "\U4e2d\U7b49",
    "\U4e2d\U7b49\U659c\U4f53",
    "\U4e2d\U9ed1",
    "\U58d3\U7e2e\U4e2d\U9ad4",
    "\U58d3\U7e2e\U52a0\U9ed1\U9ad4",
    "\U7a84\U52a0\U9ed1\U9ad4",
    "\U7d27\U7f29\U4e2d\U7b49\U4f53",
    "\U110c\U1161\U1100\U1161\U11ab \U110e\U116e\U11a8\U1109\U1169 \U1100\U1167\U11ab\U110e\U116e\U11af\U110e\U1166",
    "\U110c\U1161\U1100\U1161\U11ab \U110e\U116e\U11a8\U1109\U1169 \U110c\U116e\U11bc\U1100\U1161\U11ab\U110e\U1166",
    "\U110c\U116e\U11bc\U1100\U1161\U11ab \U110b\U1175\U1110\U1162\U11af\U1105\U1175\U11a8\U110e\U1166",
    "\U110c\U116e\U11bc\U1100\U1161\U11ab\U110e\U1166"
)
kMDItemFSContentChangeDate     = 2014-09-09 22:53:24 +0000
kMDItemFSCreationDate          = 2014-09-09 22:53:24 +0000
kMDItemFSCreatorCode           = ""
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = (null)
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = (null)
kMDItemFSLabel                 = 0
kMDItemFSName                  = "Futura.ttc"
kMDItemFSNodeCount             = (null)
kMDItemFSOwnerGroupID          = 0
kMDItemFSOwnerUserID           = 0
kMDItemFSSize                  = 348696
kMDItemFSTypeCode              = ""
kMDItemKind                    = "TrueType font collection"
kMDItemLogicalSize             = 348696
kMDItemPhysicalSize            = 167936
kMDItemVersion                 = "9.0d2e1"