【iOSアプリ開発】Xcode 6でカスタムフォントを使う方法

こんにちは、三度の飯よりパンが好き。ぶんいちです。

今回は、iOSアプリ開発を始めた、またはこれから始めたい方に向けてカスタムフォントを使用する方法をご紹介したいと思います。

Xcode 6からは、Xcode 5までとフォントの変更方法が変わっているため、iOSアプリ開発熟練者の方も参考にしていただければと思います。

本記事内での環境
Xcodeのバージョン:Xcode 6.1
MacOS:OS X 10.9.5 (Mavericks)
対象言語:Objective-C

はじめに

Xcodeには元々たくさんのフォントが入っていて、デフォルトの状態でもそれらのフォントを使用できます。

bunbun1

デフォルトで入っているフォントを使うなら、storyboardでFontをCustomに指定し、Familyから選択すればOK。

しかし、フォントは世の中にゴマンとあるわけで、Xcodeはそれら全てを網羅しているわけではありません。

そうなると、デザイナーさんから「このフォントを使って!」とか言われるとテンパるわけです。「やっべ、俺のXcodeにそのフォントないし!」ってなるわけです。

もうね、これまで何回もそんな目にあってきました。だから、かつての自分に、そしてこれからの自分のために、今回の記事を書いています。

Xcodeに指定のフォントをインストールする

では実際に、Xcodeには元々入っていない「Seravek」というフォントを使うとして実践したいと思います。

bunbun2

うわっ…私のXcode、フォントなさすぎ…?

まず、入ってないフォントを使用するには、大きく3ステップ。

  1. フォントデータを用意する
  2. フォントデータをXcodeに入れる
  3. アプリに組み込む

それぞれについて詳しく説明していきますね。

1.フォントデータを用意する

まずはフォントデータを用意します。Xcode 6で使用できるのは

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

の3形式となります。(ttc形式はXcode 6から使用可能になりました。)

今回使用する「Seravek」はMac自体にはインストールされているフォントです。

bunbun3

フォントデータは、/Library/Fonts以下に入っています。これをデスクトップなど、わかりやすいところにコピーしておきます。

これでフォントデータの準備が整いました。

仮に使用したいフォントがMac内になかった場合でも、上記の3形式のフォントデータを入手できればOKです。(ただし、フォントのライセンスには充分注意してください。)

2.フォントデータをXcodeに入れる

ここでの手順は2つ。

  1. プロジェクト内にフォントデータをコピーする
  2. Copy Bundle Resourcesでフォントデータを追加する

Xcode 5までは、*-info.plistを設定する必要があったのですが、それが不要となりすごく楽になりました。

bunbun4

プロジェクト内にフォントデータをコピーするのは簡単です。プロジェクトにドラッグ&ドロップするだけ。

bunbun5

Copy Bundle Resourcesでフォントデータを追加するのは少し複雑なので、上記の画像を確認してください。

  1. プロジェクトを選択する
  2. TARGETを選択する
  3. Build Phasesを選択する
  4. Copy Bundle Resourcesを開く
  5. +マークをクリックしてフォントを追加

落ち着いてやれば大丈夫です。

ここまで来れば、あとはアプリに反映するだけです。

フォントをアプリに反映してみよう!

いよいよフォントを反映するわけですが、その方法は大きく分けて2種類あります。

  1. StoryBoardから反映する
  2. ソースコードに書く

storyboardからフォントを反映する

Xcode 6からは、storyboardでカスタムフォントが使用可能になっており、非常に使いやすくなりました。

bunbun6

フォントを変更したいLabelを選択し、フォントを選択するだけ。簡単、便利、大好き。

ソースコードを書くことでフォントを変更する

次はソースコードを書いてフォントを変更する方法です。ソースコードに書けるということは、条件によってフォントを変えたりすることも可能になりますね!

以下のように書くことで、textLabelというUILabelオブジェクトのフォントを、先ほど追加したフォントに変更できます。

_testLabel.font = [UIFont fontWithName:@"Seravek-ExtraLight" size:100.0];

@”Seravek-ExtraLight”の箇所ですが、post script名を指定する必要があります。post script名は以下の手順で調べることができます。

  1. フォントをインストールする
  2. Font bookを開く
  3. post script名を知りたいフォントを選択し、(i)ボタンをクリック
  4. Post script名が確認できる

これで、「Seravek」フォントが使えるようになりました。

bunbun7

シミュレーション結果です。フォントが反映されています。やった!

ちなみに、上がstoryboardで設定したもの、下がソースコードから設定したものです。結果はもちろん同じですが、色だけ変えてみました。

【おまけ】色んなフォントで試してみました

bunbun8

同じ手順で、以前ビットエーブログでご紹介したフォントにしてみました。

上から、Disney風フォント、スーパーマリオブラザーズ風フォント、101匹わんちゃん風フォントです。

さいごに

ちょっと長くなってしまいましたが、無事にフォント変更できたでしょうか?

今回の手順をまとめると、

  • フォントデータを用意(形式に注意)
  • フォントデータをXcodeに入れる
  • storyboardまたはソースコードを使ってフォントを反映

となります。

また、Xcode 6からのカスタムフォントに関する変更点は以下となります。

  • TrueTypeCollection(*.ttc)が扱えるようになった
  • カスタムフォントの設定がstoryboardから可能になった
  • *-info.plistを設定する必要がなくなった

以前のバージョンから、かなり改善されていると言えますね。

一度方法を覚えてしまえば、次からは「フォント?よゆーっすよ。なんすか?次の指定フォントなんすか?」みたいになれます。強いて言うなら嫌われないように若干の注意が必要なくらいです。

ぜひ、きれいなフォントを設定して、素敵なアプリを作ってくださいね。
ではでは。ぶんいちでした。