在SwiftUI中,我们可以使用以下方法从资产目录中的颜色集中获取颜色:
extension Color {
static let coral = Color("coral")
}
这需要使用字符串类型的名称,并且在使用许多颜色集时会变得非常乏味。还有另一种获取颜色集的方法,类似于我们使用图像文字从资产目录中获取图像的方法吗?或者,只是少一些多余的东西。
如果没有,如何在SwiftUI中以编程方式创建动态颜色?例如,这是在UIKit中完成的方式:
extension UIColor {
static let dynamicColor = UIColor { $0.userInterfaceStyle == .dark ? .black : .white }
}
如果没有,如何在SwiftUI中以编程方式创建动态颜色?例如,这是在UIKit中完成的方式:
这可以几乎相同:
extension Color {
static let dynamicColor = Color(UIColor { traitCollection in
return traitCollection.userInterfaceStyle == .dark ? .black : .white
})
}
这是一个值得赞扬的临时解决方案。如果将来我们不需要依靠UIKit,那将是理想的选择。
@JWK,它是官方的公共API,因此在不建议使用(并用一些新的API取代)之前,它在所有情况下均有效。
当然,我不是要暗示其他意思。
意识到您确实回答了该问题的第二部分,我将其标记为已接受。收集灰尘已经有一段时间了,所以对此我深表歉意。