はじめに
import SwiftUI
Color(.red) //...(1)
Color.red //...(2)
(1)と(2)の違い、分かりますか?
答え
表示してみるとこうなります。

SwiftUIで作ったアプリを動かしてみたら、なんだか色が違う気がする...![]()
そんな時に思い出していただければ幸いです。![]()
解説
Color(UIColor.red) //...(1)
Color.red //...(2) == UIcolor.systemRed
書き下すとこうなります。
(1)はUIColorのred(Fixed colors)をColorに変換したものです。
(2)はredという名前ですが、UIColorのsystemRed(Standard colors)相当です。
ややこしいわ!
と思った方のために、
Color(uiColor: .red) //...(1)の代わりに使う
こちらのイニシャライザを使った方が混乱が減ってお薦めです。![]()
iOS 15.0から使用可能です。![]()
ちなみに
(1)の書き方はドキュメント上はDeprecatedになっているはずなんですが、
@available(iOS, introduced: 13.0, deprecated: 100000.0, message: "Use Color(uiColor:) (中略)")
extension Color {
public init(_ color: UIColor)
}
定義を見るとiOS 100000.0でDeprecatedになっているのでビルド時に警告が出ないんです。![]()