GADGET FACTORY 雑記帳

iPhone アプリ / Flash コンテンツ /Adobe AIR などを開発していて気づいたことや備忘録、TIPS、HACKなど

iOSアプリへのフォントの組込み方法

iOSアプリへ、端末内に存在しないフォント(カスタムフォント)を組込んで表示する方法。

今回、制作中のアプリへの実装が必要になったので調査したことを、自分自身への備忘録として。
Xcodeでのプロジェクトにて利用する方法です。



利用するフォント

フォントには著作権があるので、組み込みできないものがほとんど。
特に著作権フリーの日本語フォントは比較的少ないので、注意が必要です。
今回テストで利用したのは、IPAフォント
IPAexフォント/IPAフォント
ゴシック体は、「ipaexg.ttf」 明朝体は「ipaexm.ttf」。

フォントのファイルをプロジェクトに追加する

フォントファイルをXcodeへドラッグ&ドロップ。
「Copy items into destination group's folder」にチェックしてファイルをプロジェクトにコピーする設定にしておきます。
「Add to Targets」のプロジェクト名にチェックを入れて、プロジェクトに追加します。

アプリケーションのinfo.plistにフォント情報を追加する

Xcode左カラムの最上段を選択し、中央カラムの「TARGETS」からターゲットを選択、「Info」タブを選択する。
「Custom iOS Target Properties」内で右クリック-「Add Row」を選択し、追加するキー名「Fonts provided by application」を選択。

Itme 0に要素が1つ作られているので、Valueにフォントファイル名を登録します。
ex: ゴシックの場合は「ipaexg.ttf」と記述します。

複数のフォントを追加する場合は、「+」ボタンでItemを増やし、そこにフォントファイル名を追記して登録します。

プログラムからフォントを呼び出し

UIFontのクラスメソッドにてフォントを指定します。

textLabel.font = [UIFont fontWithName:@"IPAexGothic" size:20];

指定する際の名前は、フォントのPostScript名を指定します。

フォント名(PostScript名)の調べ方

フォントのPostScript名が分からない場合は、Macのターミナルから「mdls」コマンドを利用して、メタデータ(フォント情報)を調べる。

mdls と入力した後、当該ファイルをそのままターミナルのウィンドウにドラッグ&ドロップ

表示された情報の中の「com_apple_ats_name_postscript」 のメタデータにある文字列がPostScript名になる。