【Xcode8.2】日本語フォントを使用するときに躓いた話【UIFont】

Xcodeに日本語フォントを追加しようとしてちょっと躓いたのでメモ書き程度に書いていこうと思います。

 

フォントを追加しよう

今回使用するのはラノベPOPというフリーフォントになります。

上記URLよりダウンロードします。

ラノベPOP.otfというファイルをXcodeのプロジェクトに追加します。

 

追加する時のチェックはこんな感じ

 

 

追加したら、Info.plistにFonts provided by applicationを追加し、先ほどのファイル名を書きます。

 

ここからがつまづきポイントです。

 

まずフォントを追加した時点で、StoryBoard上でフォントを設定する際にでてくるようになるらしいのですが、探してもないのですね。

 

日本語ファイル名がダメなのかなと変えてみたのですが、全く出てくる気配がないです。

 

ストーリーボード上では結局できなかったのですが、コード上では設定することができました。

 

Font Book.appで名前を調べよう!

UIFontの設定コード自体はこんな感じです。

let label = UILabel()
label.frame = CGRect(x:50,y:100,width:100,height:50)
label.text = "あいうえお12345"
label.font = UIFont(name:"07LightNovelPOP",size:12)
label.textColor = UIColor.black
self.view.addSubview(label)

 

このnameのところで使われている名前が何かわからずに苦戦しました。

本来ならストーリーボード上でフォントを指定する際にでてくる名前を書くそうなのですが、出てこないからわからない・・・。

 

よく調べてみると、MacにデフォルトではいっているFont Book.appというアプリケーションで確認することができました。

 

ここで先ほどのラノベPOPを見てみます(フォントをMacにインストールする必要があります)

 

このPostScript名というやつが先ほどのUIFont(name:,size:)に書く名前です。

 

これで無事にフォントを変えることができました。やったー

前回の卵と一緒にパシャり

 

日本語フォントだからダメだったのかはわかりませんが、出てこないから使えない〜ってことじゃないっぽいのでメモメモc⌒っ *・∀・)φ…

 
 
 

2018/04/29追記
少しだけ注意。

フォントを追加する時に


Add to targetsのところにチェックがついていなかったら反映されません。

記事チェックで確認してる時にこれのせいでフォント変わらなくてあれ?ってなりました。

Xcode9.3で動作確認済みです!
Swift ,
コメントは認証制です。詳しくは下記の注意をお読みください。お気軽にコメントお願いします!

Write a Comment

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

Related Memo...

UINavigationController + UIScrollView の組み合わせで使っている時に謎の余白ができる時

UINavigationController + UIScrollView の組み合わせで使っていて、UIScrollView 上に AutoLayout で上下左右0で View を設置しているのに、30px程度上にずれてしまうとき。

`navigationController.navigationBar.isTranslucent = false` にすると直るかもしれない。

ScrollView上のコンテンツとNavigationBarの重なっているところが透過していたら多分これで直せるはず。

通常のターゲットではちゃんと動いているのに、iOSSnapshotTestCase を用いたテストでだけこの対応が必要なのよくわからないけれど。。。

iOS

記事を書くほどでもないけれどメモっておきたいこと

テスト投稿。

例えばiphone7 の画面サイズ

750 × 1334
半分375 × 667

iOS

UITableView.RowAnimation の .none はアニメーションするよ

UITableView.RowAnimation の .none はアニメーションがnoneなわけじゃなく、デフォルトの設定を使うよという意味らしい。

The inserted or deleted rows use the default animations.

なのでアニメーションしちゃう。今更の気づき。

 

iOS
more