naoponです。
iOS7から端末の設定からフォントサイズを変更できるようになっているのは
ご承知の通りですが、
たまたま使う機会があったのでメモします。
今回のメモの本題は以下
「 Dynamic Type のフォントを変えてみる 」
Dynamic Type がわからない方は下記がわかりやすいです。
iOS 7から追加されたDynamic Type機能を使ってみる
アプリ内で共通のフォントを決定して、
基本はそのフォントを使用します。
日本語フォントの場合
HiraKakuProN-W3 (標準)
HiraKakuProN-W6 (Bold)
英語フォントの場合
HelveticaNeue-Light (標準)
HelveticaNeue-Medium (Bold)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//日本語フォント + (UIFont *)jaFontPreferred { // ① UIFontDescriptor *fontDesc = [[UIFont preferredFontForTextStyle:UIFontTextStyleBody] fontDescriptor]; // ② UIFontDescriptor *jaFontDesc; if ((fontDesc.symbolicTraits & UIFontDescriptorTraitBold) != 0) { jaFontDesc = [fontDesc fontDescriptorByAddingAttributes:@{UIFontDescriptorNameAttribute : @"HiraKakuProN-W6"}]; } else { jaFontDesc = [fontDesc fontDescriptorByAddingAttributes:@{UIFontDescriptorNameAttribute : @"HiraKakuProN-W3"}]; } // ③ FontSizeを"0"指定することで、UIFontTextStyleBodyの動的なフォントサイズになる UIFont *font = [UIFont fontWithDescriptor:jaFontDesc size:0]; return font; } |
①:DynamicTypeフォントを取得 (例はUIFontTextStyleBodyスタイル)
②:Boldかチェックをして、それに合わせてカスタムフォントを指定
③:カスタムフォントのDynamicTypeフォントを生成
これでフォントを変えることができました。
以上!!