web-dev-qa-db-ja.com

iPhoneでカスタムotfフォントを使用して成功した人はいますか?

IPhoneでカスタムTrueTypeフォント(ttf)を使用するための実用的なソリューションがいくつかあるようですが、特に iPhoneアプリケーションにカスタムフォントを埋め込むことはできますか? ただし、この方法はOpenTypeをサポートしていません。フォント(otf)。

Otf書体を利用する方法に出くわした人はいますか?

30
BP.

デバイスでotfフォントを使用する必要がありますか、それともttfに変換できますか? fontforge などのツールを使用してOTFフォントをTTFフォントに変換するのは比較的簡単ですが、おそらくそれは簡単な解決策でしょう。

22
Joey Hagedorn

私自身のプロジェクトでは、OpenTypeフォントを使用したかったので、基本的に次の方法を使用しました。

XCodeをリソースとして使用して、カスタムフォントファイルをプロジェクトに追加します。info.plistファイルにキーを追加します(アプリケーションが提供するフォント)使用しているフォントごとに、フォントファイルのフルネーム(拡張子を含む)を入力して情報を保存します。 plistは、これをラベルに使用します(例:)

UIFont* font = [UIFont fontWithName:@"Harrowprint" size:20];

私の場合 @"Harrowprint"は拡張子のないファイル名であり、Finderによって提供されたフォント名ではありません。

私のフォントはotfでしたが、機能しました...サポートされていると思います...またはラッキーでした。別のフォントをテストし、投稿を続けます。

参照:

70
Rodo

私もこれで困りました。これが私のために働いたものです:

  1. フォントファイルをリソースにコピーします。
  2. フォントファイルが「ビルドフェーズ」->「バンドルリソースのコピー」にあることを確認します(ファイルをリソースに追加したときにXcodeがそれらを配置しました。何らかの理由でファイルが存在しない場合は、追加します。
  3. 上記のように、ファイル名をinfo.plistファイルに追加します。拡張機能を含めます。
  4. Font Bookを開き、フォントを選択してプレビュー-フォント情報を表示し、「Family」(例:「Foo」)を確認します。
  5. これをコードのどこかに置き、ブレークポイントを設定して名前の配列をチェックします:_NSArray *names = [UIFont fontNamesForFamilyName:@"Foo";_
  6. アプリを実行し、壊れたら、デバッガーで「names」変数を右クリックします。これにより、使用するフォント名が表示されます(例:<__NSCFArray 0xe9c4da0>( Foo-100Italic, Foo-100 ))。
    私のフォント名は、ファイル名にもFont Bookにも、他の場所では正しく表示されなかったことに注意してください。
  7. あなたは一緒に行くのが良いはずです:
    _myLabel.font = [UIFont fontWithName:@"Foo-100Italic" size:24];_
17
Alan McKean

この記事はあなたの質問に答えます(OTFを使用する私にとっては魅力のように機能しました): http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/

OTFは完全にサポートされており、TTFに変換する必要はありません

7
etayluz

最初の答えに関しては、解決策は正しいです(つまり、フォントをTTFに変換するだけです)が、提案されたソフトウェアは、コンパイルしてインストールするのが非常に面倒です。代わりに、私はグーグルで簡単に検索して、代わりにこれを使用しました: http://www.freefontconverter.com/ そしてそれは完全に機能しました。

(info.plistファイルにもフォントを追加してください)

3
Salman

私はこれを徹底的に調査しました、そしてこれは私が見つけた最良の方法です:

1)このオンラインツールを使用してフォントファイルをTTFに変換します: http://www.freefontconverter.com/

2)TTFファイルをプロジェクトに追加します

3)info.plistファイルにいくつかの設定を行います。

3.1)info.plistをソースコードとして編集します(ファイルを右クリック->名前を付けて開く->ソースコード)

3.2)これを追加します:

 <key>UIAppFonts</key>
 <array>
  <string>font1.ttf</string>
  <string>font2.ttf</string>
  ...etc...
 </array>

3.3)あなたのinfo.plistは今これを持っているはずです:

info plist should look like this now

4)システムフォントと同じように新しいフォントを使用します。

[UIFont fontWithName:@ "font1" size:16.0];

(フォント名に「.ttf」が含まれていないことに注意してください)

2
nurxyz