SwiftUI 如何获取动态颜色?

SwiftUI how to get dynamic color?

我有一个配置文件,我想在那里更改颜色。但在我看来函数 background(bg1Color) 给我错误;

Argument type 'UIColor' does not conform to expected type 'View'

我该如何解决这个问题?

我的配置文件;

import UIKit
import Foundation

// Backgrounds
var bg1Color: UIColor = .black

我的函数代码;

.background(bg1Color) // HERE
.cornerRadius(10)

Color不是UIColor

 import SwiftUI

 var bg1Color : Color = .black

.background 修饰符采用 View 并且与 SwiftUIColorUIKit 不同的 UIColor 不符合 View 协议(默认)。

因此您需要从 UIColor 创建一个 Color,然后将其传递给 .background 修饰符。

.background(Color(bg1Color))

或直接:

.background(Color(.black))

非常重要的注意事项!

UIColorColor 预定义命名颜色 不一样!而且它们有不同的色调!

所以你应该 只需将 UIColor 替换为 Color

实际上 SwiftIUI.Color.red 等于 UIKit.UIClor.systemRed