上は GroupBox を使って、
下は それに似せて Stack系のViewで書く。
GroupBox("Today's Menu 1") {
VStack(alignment: .leading) {
Text("🍛 curry and rice")
Text("🥗 green salad")
}
}
.frame(width: 300)
VStack {
HStack {
Text("Today's Menu 2")
.bold()
Spacer()
}
VStack(alignment: .leading) {
Text("🍛 curry and rice")
Text("🥗 green salad")
}
}
.padding()
.frame(width: 300)
.background(
.background, // *
in: .rect(cornerRadius: 8)
)
背景色が違う !
🧑🏻💻 意図しない背景色
特に背景色を意識せずに画面を構成していくと、
微妙に色が違うことありません ?
そもそもデフォルトの背景色はどんな色なのですか。
もちろん、Color クラスに定義されてますよね?
簡単に呼び出せますよね ?
Light / Dark の変化に対応してますよね ?
🧑🏻💻 地道に調べる
Xcode のカラーピッカーで調べます。
Edit
↓
Format
↓
Show Colors
RGB で opacity 100% で
// light dark
// 0.949 0.949 0.969 | 0.110 0.110 0.118
でした。
🧑🏻💻 既存の背景色 (Light/Dark 対応)
これ、SwiftUI.Color で定義されてませんよね。
UIColor の定義でそれらしきのものを見つけて、
数値を取ってみます。
// opacity 100% light dark
Color(.systemBackground) // 1.000 1.000 1.000 | 0.000 0.000 0.000
Color(.secondarySystemBackground) // 0.949 0.949 0.969 | 0.110 0.110 0.118
Color(.tertiarySystemBackground) // 1.000 1.000 1.000 | 0.173 0.173 0.180
Color(.systemGroupedBackground) // 0.949 0.949 0.969 | 0.000 0.000 0.000
Color(.secondarySystemGroupedBackground) // 1.000 1.000 1.000 | 0.110 0.110 0.118
Color(.tertiarySystemGroupedBackground) // 0.949 0.949 0.969 | 0.173 0.173 0.180
どうやら、GroubBox デフォルト背景色は、
Color(.secondarySystemBackground)
と同じもののようです。
GroupBoxStyle に定義されているのでしょうが、
見つけられませんでした。
🧑🏻💻 まとめ
こういうの困りません?
なんだか単に「色」といってもかなり深そう。
👉 大解剖!UIColorファミリー by しもとり | トーク | iOSDC Japan 2020 - fortee.jp
iOS まわりの激しい変化の歴史を感じます。