【独学】はじめてのiOSプログラミング – 5.4 Apple Developer ドキュメントでの確認

Apple Developer ドキュメントでの確認

UIの外観を変えている部分をAppleのドキュメントで確認しておきましょう。Xcodeでの属性変更、追記されるコードの部分はすべてドキュメントの仕様に沿ったものになっています。開発作業の基本となる部分を理解する意味でもドキュメントに目を通しておくことは重要です。

フォントの指定をドキュメントで確認する

UIの外観を変更する際に、最初に行ったフォントの変更についてドキュメントで確認してみます。
Viewプロトコルからドキュメントを追うと次のページで fontメソッドについて言及されています。
Documentation > SwiftUI > Views and Controls > View > Text and Symbols > Fonts
https://developer.apple.com/documentation/swiftui/view/font(_:)

Viewプロトコルに関しては汎用的に使われるものであり、幾つもの仕様が集中しています。
そのため、Viewプロトコルのドキュメントでは、Topics以下でジャンル分けされています。
ここからジャンルに応じて仕様を確認することができます。
https://developer.apple.com/documentation/swiftui/view

メソッドと引数

font メソッドのドキュメントに戻ると、font メソッドは次の書式で定義されています。

func font(_ font: Font?) -> some View

メソッドの引数の値に注目すると、「font: Font?」の書式となっており、変数の宣言時と同様の書式になっています。
「?」に関してはオブジェクトが存在しない場合もある、という意味です。XcodeでUIの外観を編集する場合はそんなに意識しなくて構いません。
「?」以外の引数の書式を改めて確認すると、引数はFontというオブジェクト型の変数です。
FontをAppleはAppleのドキュメントでは、次のように説明されています。
https://developer.apple.com/documentation/swiftui/font

「Topics」の部分にFontオブジェクトの種類がまとめられています。ここには定数の書式で、「largeTitle、title、title2、、、」と種類が挙げられています。
書式の前についている「static」は、オブジェクトと種類の名前を「.(カンマ)」で区切って使えるという意味です。
 つまり、Fontオブジェクトは、「Font.largeTitle、Font.title、Font.title2、、、」といった記述をすることで、プログラムの中でそれぞれの種類を意味するオブジェクトで扱える、と判断できます。
 fontメソッドの引数で考えると、引数として「Font.largeTitle、Font.title、Font.title2、、、」を利用することができるという意味です。
 コードを確認してみると、次のように記述されています。

fontメソッドの引数は「.title」となっています。これは「Font.title」と同じ意味です。
Swiftでは、利用するオブジェクトが明確にされている場合は、オブジェクトを外してカンマ以下の記述だけでもプログラムを記述できるというルールがあります。このため、Xcodeで追記されたコードでは「.title」のみの記述となっています。
ただしXcodeの属性の変更時に自動的に記述されるコードに関しては、ばらつきがあります。
2行下のforegroundColorメソッドでは、引数はColorオブジェクトですが、こちらはColorを省略せずに「Color.blue」で引数が記述されています。
Swiftの特徴として、このようにプログラムを短く記述できることも覚えておいてください。

foregroundColorメソッド
https://developer.apple.com/documentation/swiftui/view/foregroundcolor(_:)

Colorオブジェクト
https://developer.apple.com/documentation/swiftui/color

メソッドとラベル

再びfont メソッドのドキュメントに戻ると、font メソッドは次の書式で定義されています。

func font(_ font: Font?) -> some View

「_ font: Font?」の「font」の部分はラベルと呼ばれます。書式では引数の説明に用いますが、その前に「_」があるとラベルを省略して書くことができます。


コードを確認してみると、ラベルは記述せずに太字を表す「.title」オブジェクトのみが記述されています。
ラベルを利用するのは、引数が複数ある場合です。この場合は、引数の意味を明らかにするために、ラベルを省略せずに記述します。
UIのサイズを指定する frame メソッドのドキュメントを確認してみます。
https://developer.apple.com/documentation/swiftui/canvas/frame(width:height:alignment:)

メソッドの書式は次のとおりです。

func frame(width: CGFloat? = nil, height: CGFloat? = nil, alignment: Alignment = .center) -> some View

メソッドの利用例を見てみると、次のようにラベルを省略せずに記述されています。
コード内の「width」と「height」の記述がラベルです。

メソッドの引数の中で「=」で値が定義されている場合は、その引数を省略した場合には「=」で定義した値が引数として使われます。
上記のコードの上部では「alignment」、下部では「width」「alignment」の引数が省略されて利用されています。この場合は、省略した引数の値はメソッドの書式で定義された値が自動的に使われます。

メソッドの書式にはいくつかのルールがあり、初学者のうちに一度にすべてのルールを覚えるのは大変です。
ですから学んだことを中心にドキュメントで確認してみた後に、類似するオブジェクトの仕様を確認するなどして少しづつ覚えていくようにしてください。

外観系のドキュメント

UIの色を変えるなどの外観系のドキュメントに関してはこちらを参照してください。
Documentation > SwiftUI > Views and Controls > View > Appearance
https://developer.apple.com/documentation/swiftui/view-appearance

Xcodeのユーティリティとすべての外観の変更を照らし合わせていくと、膨大な数になってしまうので、ここではその大元の紹介に留めておきます。
実際にXcodeを触りながらドキュメントでも該当する部分を確認してみてください。

タイトルとURLをコピーしました