LoginSignup
12
9

More than 5 years have passed since last update.

ウェイト指定のシステムフォントで UIFont を作る

Last updated at Posted at 2015-07-25

表題ではうまく意味が伝わりにくいかもしれませんが、+[UIFont systemFontOfSize:] では指定できなかったシステムフォントのウェイト(太さ)を指定する方法が iOS 8.2 から用意されました。

UIFont.h
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight NS_AVAILABLE_IOS(8_2);

weight には UIFontDescriptor.h で定義される定数を指定します。

UIFontDescriptor.h
UIKIT_EXTERN const CGFloat UIFontWeightUltraLight NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightThin NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightLight NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightRegular NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightMedium NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightSemibold NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightBold NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightHeavy NS_AVAILABLE_IOS(8_2);
UIKIT_EXTERN const CGFloat UIFontWeightBlack NS_AVAILABLE_IOS(8_2);

なぜ CGFloat 型なのかはわかりませんが、上が極細、下が極太を表しています。これらに対応するウェイトを持つフォントであればそれが採用されます。iOS 8.4ではシステムフォントは Helvetica Neue、日本語はヒラギノ角ゴシックProNです。(iOS 9では San Francisco になります。)
なおiOS 8のヒラギノは Helvetica Neue ほどにはウェイトが無いので一部は区別されないと思われます。

Sample
UIFont *lightSystemFont = [UIFont systemFontOfSize:20 weight:UIFontWeightLight];

任意のウェイトのシステムフォントで表示したい場合にご活用ください。

12
9
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9