LoginSignup
5
8

More than 3 years have passed since last update.

【Swift】【Objective-C】比較リファレンス - UIFont

Last updated at Posted at 2017-06-12

【Swift】UIFont

UIFont

UIFontクラスは、文字フォント、スタイルと文字サイズを管理するクラス

UIFontのクラス階層

NSObject

UIFont

フォントの生成例

Objective-C

// フォント名とサイズを指定した
UIFont *font = [UIFont fontWithName:@"<フォント名>" size:13];

// スタイルとサイズを指定した
UIFont *font = [UIFont systemFontOfSize:[UIFont systemFontSize]];

Swift

// フォント名とサイズを指定して UIFont インスタンス作成
let font1 = UIFont(name: "Academy Engraved LET",size: 13.0)

// UIFontDescriptorとフォントサイズを指定して UIFont インスタンス作成
let descriptor = UIFontDescriptor(fontAttributes: [
    UIFontDescriptorNameAttribute: "HiraKakuProN-W3",
    ])
let font2 = UIFont(descriptor:descriptor,size:5)

// サイズを指定してシステムフォントの UIFont インスタンス作成
let font4 = UIFont.systemFontOfSize(13.0)

// サイズとウエイトを指定してシステムフォントの UIFont インスタンス作成
// Swift2
let font5_2 = UIFont.systemFontOfSize(13.0,weight: 5)
// Swift3
let font5_3 = UIFont.systemFont(ofSize: 13.0, weight: 5)

// 太字のシステムにサイズを指定して UIFont インスタンス作成
// Swift2
let font6_2 = UIFont.boldSystemFontOfSize(13.0)
// Swift3
let font6_3 = UIFont.boldSystemFont(ofSize: 13.0)

// イタリックのシステムフォントにサイズを指定して UIFont インスタンス作成
// Swift2
let font7_2 = UIFont.boldSystemFontOfSize(13.0)
// Swift3
let font7_3 = UIFont.boldSystemFont(ofSize: 13.0)

// monospace Digit のシステムフォントにサイズとウエイトを指定して UIFont インスタンス作成
// Swift2
let font8_2 = UIFont.monospacedDigitSystemFontOfSize(OfSize: 13.0,weight:UIFontWeightUltraLight)
// Swift3
let font8_3 = UIFont.monospacedDigitSystemFont(OfSize: 13.0,weight:UIFontWeightUltraLight)

// 作成済みのUIFontインスタンスからフォントサイズ指定して新しいインスタンスを作成
let font9 = UIFont(name: "Academy Engraved LET",size: 13.0)
let font10 = font9!.fontWithSize(13)

UIFont 概要

フォントを利用する時に用いいるUIです。

・Import Statement
import UIKit
・Available
iOS 2.0 and later
・Inherits
NSObject

イニシャライザー (初期化)

■ フォント名とサイズを指定して UIFont インスタンスを作成

init(name:size:) init(フォントの名前、フォントサイズ)

※ フォント名一覧を最後に記述しました。

Objective-C

UIFont *font = [UIFont fontWithName:@"<フォント名>" size:13];

Swift

let font = UIFont(name: "<フォント名>",size: 13.0)

■ UIFontDescriptorとフォントサイズを指定して UIFont インスタンスを作成

init(descriptor descriptor: UIFontDescriptor,size pointSize: CGFloat)

init(ディスクリプタ、フォントサイズ)

UIFontDescriptor に関しては UIFontDescriptor のドキュメントを参照ください。

Objective-C

UIFontDescriptor *descriptor = [UIFontDescriptor fontDescriptorWithFontAttributes:
                                @{
                                 UIFontDescriptorNameAttribute:@"<フォント名>"
                                 }
];
UIFont *font = [UIFont fontWithDescriptor:descriptor size:5];

Swift

let descriptor = UIFontDescriptor(fontAttributes: [
UIFontDescriptorNameAttribute: "<フォント名>",
])
let font = UIFont(descriptor:descriptor,size:5)

主要なプロパティのみ掲載しています。
 上記「UIFontのクラス階層」にあるクラスのプロパティも使用できます。

UIFontクラスメソッド

■ 定義済みのフォントを指定して UIFont インスタンスを作成

class func preferredFontForTextStyle(_ style: String) -> UIFont

※ 定義済みのフォントを最後に記述しました。

Swift

let font = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline)

■ サイズを指定してシステムフォントの UIFont インスタンスを作成

指定されたサイズの標準スタイルのフォントを返す

例:サイズ13の標準フォントを取得する

+ (UIFont*) systemFontOfSize:(CGFloat)fontSize;

Objective-C

UIFont *font = [UIFont systemFontOfSize:13];

class func systemFontOfSize(_ fontSize: CGFloat) -> UIFont

Swift2

let font = UIFont.systemFontOfSize(13.0)

Swift3

let font = UIFont.systemFont(ofSize: 13.0)

■ サイズとウエイトを指定してシステムフォントの UIFont インスタンスを作成

class func systemFontOfSize(_ fontSize: CGFloat,weight weight: CGFloat) -> UIFont

Swift2

let font = UIFont.systemFontOfSize(13.0,weight: 5)

Swift3

let font = UIFont.systemFont(ofSize: 13.0,weight: 5)

■ 太字のシステムにサイズを指定して UIFont インスタンスを作成

指定されたサイズの太字スタイルのフォントを返す

例:サイズ20の太字フォントを取得する

+ (UIFont*) boldSystemFontOfSize:(CGFloat)fontSize;

Objective-C

UIFont *font = [UIFont boldSystemFontOfSize:20];

class func boldSystemFontOfSize(_ fontSize: CGFloat) -> UIFont

Swift2

let font = UIFont.boldSystemFontOfSize(20.0)

Swift3

let font = UIFont.boldSystemFont(ofSize: 20.0)

■ イタリックのシステムフォントにサイズを指定して UIFont インスタンスを作成

指定されたサイズの斜体スタイルのフォントを返す

例:サイズ13の斜体フォントを取得する

+ (UIFont*) italicSystemFontOfSize:(CGFloat)fontSize;

Objective-C

UIFont *font = [UIFont italicSystemFontOfSize:13];

class func italicSystemFontOfSize(_ fontSize: CGFloat) -> UIFont

Swift2

let font = UIFont.italicSystemFontOfSize(13.0)

Swift3

let font = UIFont.italicSystemFont(ofSize: 13.0)

■ monospace Digit のシステムフォントにサイズとウエイトを指定して UIFont インスタンスを作成

class func monospacedDigitSystemFontOfSize(_ fontSize: CGFloat,weight weight: CGFloat) -> UIFont

UIFontWeightUltraLight に関しては UIFontDescriptor のドキュメントを参照ください。

Swift2

let font12 = UIFont.monospacedDigitSystemFontOfSize(13.0,weight: UIFontWeightUltraLight)

Swift3

let font12 = UIFont.monospacedDigitSystemFont(ofSize: 13.0,weight: UIFontWeightUltraLight)

■ 実行している OS で利用可能なフォントファミリー一覧を配列で取得

使用できるフォントファミリー名を返す

+ (NSArray*) familyNames;

Objective-C

NSLog(@"%@",[UIFont familyNames]);

class func familyNames() -> [String]

Swift

print(UIFont.familyNames())

■ フォントファミリー名からフォント名を配列で取得

class func fontNamesForFamilyName(_ familyName: String) -> [String]

Swift

print(UIFont.fontNamesForFamilyName("Menlo"))
Menlo-Italic
Menlo-Bold

■ デフォルト基準のフォントサイズを取得

ラベルで使用される標準的なサイズを返す
例:ラベルで使用される標準的なサイズを表示する

+ (CGFloat) labelFontSize;

Objective-C

NSLog(@"%f",[UIFont labelFontSize]);

class func labelFontSize() -> CGFloat

Swift

print(UIFont.labelFontSize())

■ デフォルト基準のボタンのフォントサイズを取得

ボタンで使用される標準的なサイズを返す
例:ボタンで使用される標準的なサイズを表示する

+ (CGFloat) buttonFontSize

Objective-C

NSLog(@"%f",[UIFont buttonFontSize]);

class func buttonFontSize() -> CGFloat

Swift

print(UIFont.buttonFontSize())

■ デフォルト基準のスモールシステムフォントのフォントサイズを取得

標準サイズよりも小さめのサイズを返す

例:標準サイズよりも小さめのサイズを表示する

+ (CGFloat) smallSystemFontSize

Objective-C

NSLog(@"%f",[UIFont smallSystemFontSize])

class func smallSystemFontSize() -> CGFloat

Swift

print(UIFont.smallSystemFontSize())

■ デフォルト基準のシステムフォントのフォントサイズを取得

標準サイズを返す

例:

+ (CGFloat) systemFontSize;

Objective-C

NSLog(@"%@",[UIFont systemFontSize]);

class func systemFontSize() -> CGFloat

Swift

print(UIFont.systemFontSize())

主要なメソッドのみ掲載しています。
 上記「UIFontのクラス階層」にあるクラスのメソッドも使用できます。

インスタンスメソッド

■ 作成済みのUIFontインスタンスからフォントサイズ指定して新しいインスタンスを作成

func fontWithSize(_ fontSize: CGFloat) -> UIFont

Swift

let font = UIFont(name: "Academy Engraved LET",size: 13.0)
let font2 = font.fontWithSize(13)

■ インスタンスのディスクリプタを取得

func fontDescriptor() -> UIFontDescriptor

Swift2

let font = UIFont.systemFontOfSize(16)
let descriptor = font.fontDescriptor()

Swift

let font = UIFont.systemFont(ofSize: 16)
let descriptor = font.fontDescriptor()

UIFont のプロパティ

プロパティ名/(型) 読取専用 備考
familyName/(NSString) フォントファミリー名を取得する
fontName/(NSString) フォント名を取得する
pointSize/(CGFloat) フォントサイズを取得する
lineHeight/(CGFloat) 行の高さを取得する
capHeight/(CGFloat) 大文字の高さを取得する
xHeight/(CGFloat) 小文字「x」の高さを取得する
ascender/(CGFloat) アセンダを取得する
descender/(CGFloat) ディセンダを取得する

■ インスタンスに設定されているフォントファミリー名を取得

フォントファミリー名を取得する
例:

- (NSString *) familyName;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSString *str = font.familyName;

var familyName: String { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.familyName)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.familyName)

■ インスタンスに設定されているフォント名を取得

- (NSString *) fontName;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSLog(@"%@",font.fontName);

var fontName: String { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.fontName)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.fontName)

■ インスタンスに設定されているポイントのサイズを取得

- (CGFloat) pointSize;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSLog(@"%f",font.pointSize);

var pointSize: CGFloat { get }

Swift2

let font = UIFont.systemFontOfSize(15)
print(font.pointSize)

Swift3

let font = UIFont.systemFont(ofSize: 15)
print(font.pointSize)

■ アセンダを取得

- (CGFloat) ascender;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSLog(@"%f",font.ascender);

var ascender: CGFloat { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.ascender)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.ascender)

■ ディセンダを取得

- (CGFloat) descender;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSLog(@"%f",font.descender);

var descender: CGFloat { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.descender)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.descender)

■ 行の高さを取得

var leading: CGFloat { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.leading)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.leading)

■ アルファベットの大文字の最大高さを取得

- (CGFloat) capHeight;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSLog(@"%f",font.capHeight);

var capHeight: CGFloat { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.capHeight)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.capHeight)

■ 小文字「x」の高さを取得

- (CGFloat) xHeight;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSLog(@"%f",font.xHeight);

var xHeight: CGFloat { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.xHeight)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.xHeight)

■ インスタンスに設定されているラインの高さのサイズを取得

- (CGFloat) lineHeight;

Objective-C

UIFont *font = [UIFont systemFontOfSize:16];
NSLog(@"%f",font.lineHeight);

var lineHeight: CGFloat { get }

Swift2

let font = UIFont.systemFontOfSize(16)
print(font.lineHeight)

Swift3

let font = UIFont.systemFont(ofSize: 16)
print(font.lineHeight)

定義済みフォント一覧(Font For Text Style)

Swift

UIFontTextStyleTitle1
UIFontTextStyleTitle2
UIFontTextStyleTitle3
UIFontTextStyleHeadline
UIFontTextStyleSubheadline
UIFontTextStyleBody
UIFontTextStyleFootnote
UIFontTextStyleCaption1
UIFontTextStyleCaption2
UIFontTextStyleCallout

フォントファミリー名一覧

(例なので、OSによって異なリマス)
フォントの種類
使用できるフォントには以下のようなフォントがあります。

Swift

Academy Engraved LET
Al Nile
American Typewriter
Apple Color Emoji
Apple SD Gothic Neo
Arial
Arial Hebrew
Arial Rounded MT Bold
Avenir
Avenir Next
Avenir Next Condensed
Bangla Sangam MN
Baskerville
Bodoni 72
Bodoni 72 Oldstyle
Bodoni 72 Smallcaps
Bodoni Ornaments
Bradley Hand
Chalkboard SE
Chalkduster
Cochin
Copperplate
Courier
Courier New
Damascus
Devanagari Sangam MN
Didot
Euphemia UCAS
Farah
Futura
Geeza Pro
Georgia
Gill Sans
Gujarati Sangam MN
Gurmukhi MN
Heiti SC
Heiti TC
Helvetica
Helvetica Neue
Hiragino Mincho ProN
Hiragino Sans
Hoefler Text
Iowan Old Style
Kailasa
Kannada Sangam MN
Khmer Sangam MN
Kohinoor Bangla
Kohinoor Devanagari
Kohinoor Telugu
Lao Sangam MN
Malayalam Sangam MN
Marker Felt
Menlo
Mishafi
Noteworthy
Optima
Oriya Sangam MN
Palatino
Papyrus
Party LET
PingFang HK
PingFang SC
PingFang TC
Savoye LET
Sinhala Sangam MN
Snell Roundhand
Symbol
Tamil Sangam MN
Telugu Sangam MN
Thonburi
Times New Roman
Trebuchet MS
Verdana
Zapf Dingbats
Zapfino

関連記事

【Swift】【Objective-C】比較リファレンス - Swift,Objective-C 比較まとめ
【About】(http://qiita.com/sunstripe) - サンストライプ


制作チーム:サンストライプ

sunstripe_logo.png
http://sunstripe.main.jp/

(月1WEBコンテンツをリリースして便利な世の中を作っていくぞ!!ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)

地域情報 THEメディア

THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます!!
https://the.themedia.jp/

ゼロからはじめる演劇ワークショップ

多様化の時代に向けて他者理解を鍛える

プログラミングワークショップ・ウェブ塾の開講!!!

様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プログラミングサロン 月1だけのプログラミング学習塾

協力応援 / 支援者の集い

チーム:サンストライプ

プログラミングラボ

一緒にポートフォリオを作りませんか?現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週1のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております!!

興味がある方は、DMに話しかけてみてください。

トラストヒューマン

http://trusthuman.co.jp/
私たちは何よりも信頼、人と考えてます。

「コンサルティング」と「クリエイティブ」の両角度から「人材戦略パートナー」としてトータル的にサポートします!!

キャリア教育事業
広域学習支援プラットフォーム『のびのび日和』
https://slc-lab.amebaownd.com/

スポンサー募集

5
8
2

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
5
8