表題ではうまく意味が伝わりにくいかもしれませんが、+[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];
任意のウェイトのシステムフォントで表示したい場合にご活用ください。