在SwiftUI中,可以通過(guò)創(chuàng)建一個(gè)自定義的ViewModifier
來(lái)更改主題顏色。以下是一個(gè)簡(jiǎn)單的示例,展示了如何通過(guò)編程方式使用Hex和RGB值來(lái)更改主題顏色:
首先,定義一個(gè)ThemeColor
結(jié)構(gòu)體,用于存儲(chǔ)顏色信息:
struct ThemeColor {
let hex: String
let rgb: (Double, Double, Double)
}
接下來(lái),創(chuàng)建一個(gè)ThemeColorModifier
,它是一個(gè)ViewModifier
,用于將主題顏色應(yīng)用于視圖:
struct ThemeColorModifier: ViewModifier {
var themeColor: ThemeColor
func body(content: Content) -> some View {
content
.foregroundColor(Color(hex: themeColor.hex))
.background(Color(red: themeColor.rgb.0, green: themeColor.rgb.1, blue: themeColor.rgb.2))
}
}
現(xiàn)在,你可以將ThemeColorModifier
應(yīng)用到任何視圖上,以更改其主題顏色。例如,假設(shè)你有一個(gè)名為MyView
的視圖,你可以這樣更改其主題顏色:
let myThemeColor = ThemeColor(hex: "#FF5733", rgb: (255, 87, 51))
MyView()
.modifier(ThemeColorModifier(themeColor: myThemeColor))
這將使MyView
的前景色變?yōu)镠ex值為#FF5733
的顏色,背景色變?yōu)镽GB值為(255, 87, 51)的顏色。