Inheritedの設定
SwiftUIでのInherited(=遺伝性、受け継ぐ)の設定方法
XcodeのインスペクタではFont、Weight、Colorの設定を行うことが可能。
その設定の中に「Inherited」という選択肢が存在する。
Inheritedを選択することで、言葉の通り設定を受け継ぐことが可能となる。
例えば、以下のサンプルAではVStackにfontを指定しており、すべてのテキストがラージサイズで表示されている。
サンプルA
また、サンプルBのように1部のテキストのみ設定を変更することも可能。
サンプルB
Computed property(計算型プロパティ)
プロパティとは
日本語では「属性」や「性質」などと訳される。
IT分野ではオブジェクト指向の用語として扱われることが多く、
クラスや構造体などで定義することができる定数や変数を指す。
Computed property(計算型プロパティ)
値を保持することなく、インスタンスが生成される度に他のプロパティの値を取得し設定するプロパティ。値の返却と設定にget/setを用いる。(以下、サンプルコード)
returnを省略した変数
var num: Int {
4 * 2
}
print(num)
上記のコードではget{}が省略されており、値(num)の取得のみが可能なリードオンリーの変数を定義している。
getを省略しない書き方
var num: Int {
get {
return 4 * 2
}
}
get/setの書式
var 変数名: 型 {
get {
ステートメント
return 値
}
set(引数) {
ステートメント
}
}
リードオンリーだけではなく、変数に値を設定できる書き方。
setブロックでは引数で受け取った値を保存するが、変数の値としての保存は行わない。
このような書式をComputed propertyと呼ぶ。
タプル(tuple)の使い方
タプル(tuple)とは
複数の構成要素からなる組を総称する一般概念。(Wikiより)
Swiftでのタプルの使い方
タプルを使用することで複数の値を1つの変数で扱うことが可能。
また、異なる型の値を組み合わせることも可能。
タプルの例
var weather = ("sunny", "rain")
var season = ("spring", "summer", "autumn", winter)
var age = ("18", 25, "37")
タプルの型指定
var weather: (String, String) = ("sunny", "rain")
var season: (String, String)
season = ("summer", "winter")
var age: (String, Int, "String")
age = ("18", 25, "37")
タプルの型推論
// 型推論によって型が決まる
var age = ("26", 32)
// 代入する値の型が違うのでエラー
age = ("19", "58")
ラベル付きのタプル
var season = (summer: "夏", tempreture: 35)
print("\(season.summer)の気温は\(season.tempreture)度となる。")
// 夏の気温は35度となる。
タプルにインデックス番号でアクセス
var age = (7, 11, 13)
print(age.2) // 13