西海岸より

つらつらざつざつと

UILabelやUITextViewのフォントをヒラギノで揃える

UILabelやUITextViewではデフォルトだとsystemフォントが設定されており、
記号(※)などの文字は、全角で入力しても半角フォントが適用されてしまい小さく表示されてしまう。

これを防ぐには、UILabelのsetFontで明示的にヒラギノフォントを指定すればよい。

UIFont *hirakakuFont = [UIFontfontWithName:@"HiraKakuProN-W3"size:14];
[labelHirakaku setFont:hirakakuFont];

ちなみにiPhoneに入っている日本語フォントは以下の二種類のみ。(もう一つは太字用なので実質は1つ)

  • HiraKakuProN-W3 (標準)
  • HiraKakuProN-W6 (ボールド)

比較するとこんな感じ。

フォントを指定して使う場面が多い場合は、UIFontをカテゴリとして用意してます。

  • UIFont+Additions.h
#import <UIKit/UIKit.h>

@interface UIFont (Additions)

+ (id)normalHirakakuFontWithSize:(CGFloat)fontSize;

+ (id)boldHirakakuFontWithSize:(CGFloat)fontSize;

@end
  • UIFont+Additions.m
@implementation UIFont (Addtions)

+ (id)normalHirakakuFontWithSize:(CGFloat)fontSize {
  return [self fontWithName:@"HiraKakuProN-W3" size:fontSize];
}

+ (id)boldHirakakuFontWithSize:(CGFloat)fontSize {
  return [self fontWithName:@"HiraKakuProN-W6" size:fontSize]; 
}

@end